我有一个带有2列RANK和VALUE的DAX表。我需要一种措施,以返回RANK最低的那一行的值。
解决方案必须高效,因为表中有数以千万计的行,其中VALUE列中的值不同。
我尝试使用TOPN,但这将返回一个表,而不是单个值。 我尝试使用MIN,但这将返回最低的VALUE,而不是具有最低RANK的VALUE 我不能使用LOOKUPVALUE,因为在我的实际示例中,该表具有比第2列更多的列,并且其中某些列将由客户端应用程序应用到它们的过滤器,而且显然我在设计时不知道这些过滤器。
VALUE RANK MANY_MORE_COLUMNS ...
100 1 ...
200 2 ...
50 3 ...
在这种情况下,我需要返回值100,因为最低RANK为1。
答案 0 :(得分:1)
尝试一下:
Measure =
CALCULATE (
MAX ( Table[VALUE] ),
FILTER ( Table, Table[RANK] = MIN ( Table[RANK] ) )
)
FILTER函数将“表”过滤到具有最低RANK的行。然后,MAX(Table [VALUE])返回该行中的VALUE。尽管只有一行,但是您需要在此处使用一个返回标量值的函数(在这种情况下为MAX)。此处的CALCULATE函数期望标量值作为参数。