每年创建一个具有最高资助类别的新计算表

时间:2017-12-06 11:19:52

标签: powerbi dax top-n

一个表包含3列,即年份,类别和金额,其中年份和金额是计算列。

表1:

+------+----------+--------+
| Year | Category | amount |  
+------+----------+--------+
| 2016 | A        |     50 |  
| 2017 | B        |     85 |  
| 2015 | A        |     90 |  
| 2017 | C        |    135 |  
| 2016 | C        |     55 |  
| 2015 | B        |    180 |  
| 2017 | A        |     30 |  
| 2016 | B        |     45 |  
| 2015 | C        |     60 |  
+------+----------+--------+

现在我需要使用DAX创建一个新表,其中前两行具有最高金额,即输出如下表所示

+------+----------+--------+
| Year | Category | amount |
+------+----------+--------+
| 2015 | B        |    180 |
|      | A        |     90 |
| 2016 | c        |     55 |
|      | A        |     50 |
| 2017 | C        |    135 |
|      | B        |     85 |
+------+----------+--------+

我的DAX:

New Table = CALCULATE(TOPN(3, 'Table 1', 'Table 1'[Amount],DESC),ALLEXCEPT('Table 1','Table 1'[Year]))

但是我收到了错误。那么有人可以建议我继续使用正确的DAX吗?

1 个答案:

答案 0 :(得分:0)

您可以使用以下DAX创建Rank列:

Rank = 
COUNTROWS(
    FILTER(
        'Table 1',
        'Table 1'[Year] = EARLIER('Table 1'[Year]) &&
        'Table 1'[Amount] > EARLIER('Table 1'[Amount])
    )
) + 1

然后,您可以过滤Rank小于或等于2的表。