如何使用 DAX Power BI 添加组内每行的总和

ran*_*ane 1 sum measure dax powerbi

我试图给出每个组的排名列,该列在原始表组内的每一行中重复,但不是求和后的形状。

我在另一个网站找到的公式但显示错误: https://intellipaat.com/community/9734/rank-categories-by-sum-power-bi

表格1

+-----------+------------+-------+

| product   | date       | sales |

+-----------+------------+-------+

| coffee    | 11/03/2019 | 15    |

| coffee    | 12/03/2019 | 10    |

| coffee    | 13/03/2019 | 28    |

| coffee    | 14/03/2019 | 1     |

| tea       | 11/03/2019 | 5     |

| tea       | 12/03/2019 | 2     |

| tea       | 13/03/2019 | 6     |

| tea       | 14/03/2019 | 7     |

| Chocolate | 11/03/2019 | 30    |

| Chocolate | 11/03/2019 | 4     |

| Chocolate | 11/03/2019 | 15    |

| Chocolate | 11/03/2019 | 10    |

+-----------+------------+-------+
Run Code Online (Sandbox Code Playgroud)

目标

+-----------+------------+-------+-----+------+

| product   | date       | sales | sum | rank |

+-----------+------------+-------+-----+------+

| coffee    | 11/03/2019 | 15    | 54  | 5    |

| coffee    | 12/03/2019 | 10    | 54  | 5    |

| coffee    | 13/03/2019 | 28    | 54  | 5    |

| coffee    | 14/03/2019 | 1     | 54  | 5    |

| tea       | 11/03/2019 | 5     | 20  | 9    |

| tea       | 12/03/2019 | 2     | 20  | 9    |

| tea       | 13/03/2019 | 6     | 20  | 9    |

| tea       | 14/03/2019 | 7     | 20  | 9    |

| Chocolate | 11/03/2019 | 30    | 59  | 1    |

| Chocolate | 11/03/2019 | 4     | 59  | 1    |

| Chocolate | 11/03/2019 | 15    | 59  | 1    |

| Chocolate | 11/03/2019 | 10    | 59  | 1    |

+-----------+------------+-------+-----+------+
Run Code Online (Sandbox Code Playgroud)

剧本

sum =

SUMX(

    FILTER(

         Table1;

         Table1[product] = EARLIER(Table1[product])

    );

    Table1[sales]

) 
Run Code Online (Sandbox Code Playgroud)

错误 :

EARLIER(Table1[product]) # Parameter is not correct type cannot find name 'product' 
Run Code Online (Sandbox Code Playgroud)

上面的脚本有什么问题?* 无法测试此脚本:

rank = RANKX( ALL(Table1); Table1[sum]; ;; "Dense" )
Run Code Online (Sandbox Code Playgroud)

在修复总和方法之前

RAD*_*ADO 6

该脚本是为计算列而不是度量而设计的。如果将其作为度量输入,则 EARLIER 没有“上一个”行上下文可供引用,并会给出错误。

创建一个度量:

Total Sales = SUM(Table1[sales])
Run Code Online (Sandbox Code Playgroud)

该指标将用于显示销售额。

创建另一个度量:

Sales by Product =
SUMX(
  VALUES(Table1[product]);
  CALCULATE([Total Sales]; ALL(Table1[date]))
)
Run Code Online (Sandbox Code Playgroud)

此度量将按产品显示销售额,忽略日期。

第三措施:

Sale Rank = 
  RANKX(
     ALL(Table1[product]; Table1[date]); 
     [Sales by Product];;DESC;Dense)
Run Code Online (Sandbox Code Playgroud)

创建一个以产品和日期为中心的报告,并将所有 3 个度量放入其中。结果:

在此输入图像描述

如有必要,调整 RANKX 参数以更改排名模式。