问题描述
我有 2 张桌子,它们看起来像这样。
D_COURSES
Course_ID
Course_Name
Subject_Order
F_STUDENTCOURSES
COURSE_ID
POINTS_CAT_A
POINTS_CAT_B
我想获取 F_STUDENTCOURSES[COURSE_ID]
值并在 Subject_Order
表中查找 D_COURSES
值。如果该值为 1,我想对除法函数的 POINTS_CAT_A
或 POINTS_CAT_B
值求和。
这是我使用的 DAX 函数:
divide(
calculate(sum(F_STUDENTCOURSE[POINTS_CAT_A]),LOOKUPVALUE(D_COURSES[SUBJECT_ORDER],F_STUDENTCOURSE[COURSE_ID],1)),calculate(sum(F_STUDENTCOURSE[POINTS_CAT_B]),"")
我收到的错误信息是这样的:
函数 LOOKUPVALUE 需要列引用作为参数编号 2。
我做错了什么?
解决方法
Lookupvalue 以这种方式工作 lookupvalue(column to return,column to search in,value to search for from the column)
。在您的情况下,它将是 lookupvalue(d[subject],d[course_id],f[course_id]).
...通过在 d_course_id 列中查找 f_course_id 值来返回 d_subject。
我不认为 Lookupvalue 在计算中起作用。你可以试试以下方法吗
MEASURE=
VAR _1 = Calculate(sum([catA]),Filter (values(d[sub_order]),d[sub_order]=1))
VAR _2 = Calculate(sum([catB]),d[sub_order]=1))
VAR _3 = DIVIDE (_1,_2)
RETURN _3
假设有关系,当 suborder=1 时将 catA 和 catB 相加,然后除以