我是Power BI和Dax查询的新手。 我有2表添加1 ::关系。我正在尝试通过外键和特定键过滤第二个表。
例:###Table1:###
ID | RunID | ...[Other columns]
###Table2:###
ID | RunID | Key | Value | State
因此,我试图在Power BI中使用Dax查询来获取键的值。 (可能有重复的键值对,但我可以排在前一个)
NEWCOLUMN =
VAR tmp =
FILTER (
Table2,
AND ( Table2[RunID] = Table1[RunID], Table2[Key] = "KEY_I_NEED" )
)
VAR tmp2 =
CALCULATE ( VALUES ( Table2[Value] ), TOPN ( 1, tmp ) )
RETURN
tmp2
现在我遇到了错误:
“该表达式引用多个列。多个列不能为 转换为标量值。”
无法按照我需要的方式工作。
答案 0 :(得分:0)
如果只有一个 distinct 值(可以使用重复项),则可以使用查找:
NEWCOLUMN =
LOOKUPVALUE(
Table2[Value],
Table2[RunID], Table1[RunID],
Table2[Key], "KEY_I_NEED"
)
如果有多个不同的值,则可以使用最大值:
NEWCOLUMN =
CALCULATE(
MAX( Table2[Value] ),
Table2[Key] = "KEY_I_NEED"
)
以上内容与RunID
隐式匹配(假设这是与表相关的列)。
还有许多其他方法可以使用功能的各种组合来完成此操作,例如TOPN
,MAXX
,RELATEDTABLE
,VALUES
等,但是这些不是不可能比我建议的更简单或更有效。