表包含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创建一个新表,其中前2行的数量在每年最高,也就是如下所示的输出
+------+----------+--------+
| 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吗?
发布于 2017-12-06 16:11:58
可以使用以下DAX创建Rank列:
Rank =
COUNTROWS(
FILTER(
'Table 1',
'Table 1'[Year] = EARLIER('Table 1'[Year]) &&
'Table 1'[Amount] > EARLIER('Table 1'[Amount])
)
) + 1然后,您可以筛选Rank小于或等于2的表。
https://stackoverflow.com/questions/47673083
复制相似问题