DAX按一列分组,并保留另一列的相应值

时间:2018-08-28 15:20:56

标签: powerbi dax

一个简单的问题,我敢肯定,这比我想像的要简单。

所以可以说我有一个包含3列的表

colA   colB   colC
D      Adam   100
D      Dennis 200
D      Tim    300
C      Sharon 450
C      Cindy  400

如何按colA分组,取最大colC并返回colB的对应值

例如

colA   colB    colC
D      Tim     300
C      Sharon  450

我希望这是有道理的。大家好!

2 个答案:

答案 0 :(得分:0)

您可以执行以下操作。但是,如果[colC]包含特定[colA]值的重复值,则可能会产生错误。

SUMMARIZECOLUMNS(
    'MyTable'[colA],
    "colB", 
        VAR maxC = MAX('MyTable'[colC])
        RETURN CALCULATE(VALUES('MyTable'[colB]), 'MyTable'[colC] = maxC)
    "colC",
        MAX('MyTable'[colC])
)

答案 1 :(得分:0)

一种方法是向表中添加一个等级列,然后进行可视级别的Top N过滤器。

Rank = RANKX(
           FILTER(
               ALL( Table1 ),
               Table1[colA] = EARLIER( Table1[colA] )
           ),
           Table1[colC]
       )

一旦有了该新列,就将colAcolBcolC添加到表或矩阵可视化文件中,并将Rank列放入可视化级别过滤器部分然后选择

Filter Type: Top N
Show items: Bottom 1
By value: Rank

然后,您的表应仅显示每个colC值的最大colA值。