在PowerBI DAX中使用RANKX

时间:2018-07-13 00:40:12

标签: sql powerbi dax rank powerquery

我是PowerBI新手,并且一直在使用DAX功能,更具体地说是RANKX功能。这是我的数据集:

+----------+-------------------------------------+-----------------+----------+
| Category |            Sub Category             |      Date       | My Value |
+----------+-------------------------------------+-----------------+----------+
| A        |              A1                     |      2018-01-01 |        2 |
| A        |              A2                     |      2018-01-02 |        4 |
| A        |              A3                     |      2018-01-03 |        6 |
| A        |              A4                     |      2018-01-04 |        6 |
| B        |              B1                     |      2018-01-05 |       21 |
| B        |              B2                     |      2018-01-06 |       22 |
| B        |              B2                     |      2018-01-07 |       23 |
| C        |              C1                     |      2018-01-08 |       35 |
| C        |              C2                     |      2018-01-09 |       35 |
| C        |              C3                     |      2018-01-10 |       35 |
+----------+-------------------------------------+-----------------+----------+

下面是我的代码:

Rank all rows as Column = 
    RANKX(
        'Table',
        'Table'[My Value]
        )

不幸的是,我收到以下错误:

  

表“ Table”中“ My Value”列的单个值不能为   决心。当度量公式引用列时,可能会发生这种情况   包含许多值而未指定聚合,例如   最小,最大,计数或总和以获得单个结果。

任何帮助将不胜感激。

谢谢

2 个答案:

答案 0 :(得分:0)

创建一个总结以总结“我的价值”列:

Sum value = SUM(Table[My value]) 

然后使用此度量来获得您的排名:

Rank all rows as Column = 
    RANKX(ALL(Table);[Sum value])

这将为您提供每个子类别的排名。

答案 1 :(得分:0)

您的公式没有错,只是将其放在错误的位置。

有两种方法可以在PowerBI中编写DAX公式:

  • 作为计算列
  • 作为衡量标准

enter image description here

差异至关重要,如果要使用PowerBI,则需要学习。

您编写的公式适用于计算列。如果将其创建为度量,则会出现错误。要解决此问题,请转到“模型”选项卡,单击“新建列”,粘贴您的代码,它应该可以工作。

如果您需要RANKX作为衡量标准,Chrisoffer会给您一个很好的答案。