如何将已排序表中的第一个值转换为度量?

时间:2019-06-05 06:46:05

标签: powerbi dax powerquery

我有一个带有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。

1 个答案:

答案 0 :(得分:1)

尝试一下:

Measure =
CALCULATE (
    MAX ( Table[VALUE] ),
    FILTER ( Table, Table[RANK] = MIN ( Table[RANK] ) )
)

FILTER函数将“表”过滤到具有最低RANK的行。然后,MAX(Table [VALUE])返回该行中的VALUE。尽管只有一行,但是您需要在此处使用一个返回标量值的函数(在这种情况下为MAX)。此处的CALCULATE函数期望标量值作为参数。