首页 > 解决方案 > DAX Power BI 中按组排名前 2 位

问题描述

我想在这里按公司获得前 2 名。表称为“表 (3)”

在此处输入图像描述

我希望能够像这样填充列 -

在此处输入图像描述

我试过 Column = RANKX(ALLEXCEPT('Table (3)','Table (3)'[Company]),SUM('Table (3)'[Units]))但得到一个循环错误。

我认为这样做的另一种方法 - 不是很有效 - 是使用 TOPN 并由每家公司做一个 UNION,这样每家公司都会有一个自己的 TOPN 值表。

我知道如何在已经使用 Table.MaxN 的电源查询上执行此操作,但想在 DAX 上执行此操作

标签: powerbidaxpowerquery

解决方案


你可以得到这样的排名:

Rank = 
VAR CurrUnits = 'Table (3)'[Units]
RETURN
    CALCULATE (
        RANK.EQ ( CurrUnits, 'Table (3)'[Units] ),
        ALLEXCEPT ( 'Table (3)', 'Table (3)'[Company] )
    )

从那里,如果您愿意,您可以丢弃除 1 和 2 以外的等级。


推荐阅读