如何查找不相关表中的第一个非空白值。它等效于SQL:outer apply (select top 1
或等效于Excel VLOOKUP
。
[DAX函数LOOKUPVALUE
似乎正在完成工作,但是如果在搜索表中找到多个值,它将返回错误。
LOOKUPVALUE(
SearchTable[name]
, SearchTable[id] -- how to get the fist value, if here are multiple id?
, ThisTable[id]
)
样本数据文件:
我作为预期结果包含在样本数据Karl Anka's solution中。对于任何其他解决此问题的方法,我将不胜感激。我欢迎对他们的表现发表评论。
Column =
VAR row_id = ThisTable[id]
VAR ret_val =
SELECTCOLUMNS (
TOPN (
1;
CALCULATETABLE (
SearchTable;
SearchTable[id] = row_id;
SearchTable[name] <> BLANK ()
)
);
"name"; SearchTable[name]
)
RETURN
ret_val
LookupFunction =
LOOKUPVALUE ( SearchTable[Category], SearchTable[Product], ThisTable[Product] )
MaxxLookup =
MAXX (
FILTER ( SearchTable, SearchTable[Product] = ThisTable[Product] ),
SearchTable[Category]
)
CaclculateMaxLookup =
CALCULATE (
MAX ( SearchTable[Category] ),
SearchTable[Product] = EARLIER ( ThisTable[Product] )
)
如果要使用第二或第三作为度量而不是计算列,则需要对其进行调整。