标记DAX中排名最高的帐户

时间:2018-08-15 05:13:25

标签: dax powerpivot

我在PowerPivot中具有下表。我想创建一列(“显示”),该列的名称应与具有相同ID的所有行的最高排名相对应。下表显示了所需的最终状态,其中“显示”是我之后的计算列:

enter image description here

2 个答案:

答案 0 :(得分:0)

假设您的表名为“ DimShow”,则以下DAX应该可以解决问题:

LOOKUPVALUE(
    'DimShow'[Quarter],
    'DimShow'[ID], 'DimShow'[ID],
    'DimShow'[Rank],
    CALCULATE(
        MIN('DimShow'[Rank]), 
        ALLEXCEPT('DimShow', 'DimShow'[ID])
    )
)

说明: 我们想从[Quarter]列中查找一个与当前行具有相同[ID]的值。同时,[Rank]值应为与当前行具有相同[ID]的所有行的最小值。

请注意,如果在一个特定的[ID]中,相同(最低)等级的[Quarter]的唯一值超过一个,则会产生错误。

答案 1 :(得分:0)

我通常使用变量来做到这一点:

Show = 
    VAR TopRank = CALCULATE(MIN(Table1[Rank]), ALLEXCEPT(Table1, Table1[ID]))
    RETURN CALCULATE(
               MAX(Table1[Quarter]),
               ALLEXCEPT(Table1, Table1[ID]),
               Table1[Rank] = TopRank)

TopRank变量计算该ID的最高排名。第二行实质上是查找该排名和该Quarter的{​​{1}}值。