一个表包含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吗?
答案 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的表。