在 PowerBI DAX 中使用 RANKX

Using RANKX in PowerBI DAX

我是 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]
        )

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

A single value for column 'My Value' in table 'Table' cannot be determined. This can happen when a measure formula refers to a column that contains many values without specifying an aggregation such as min, max, count, or sum to get a single result.

如有任何帮助,我们将不胜感激。

谢谢

创建一个小节以对 "My value" 列求和:

Sum value = SUM(Table[My value]) 

然后使用此衡量标准来获得您的排名:

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

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

你的公式没有问题,你只是放错了地方。

您可以通过两种方式在 PowerBI 中编写 DAX 公式:

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

区别很关键,如果你想使用PowerBI,你需要学习它。

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

如果你需要RANKX作为衡量标准,Chrisoffer已经给了你很好的答案。