PowerBI中基于ClosedDate和User的Complexity*Effort累计求和DAX列需求
需求说明
我的Azure看板任务数据存储在一张表中,每条任务包含User(用户)、PBI Name(任务名称)、Effort(工作量)、Complexity(复杂度)、Closed Date(关闭日期)字段。需要创建DAX计算列CUMULATE,实现按User分组,累计当前行及之前Closed Date的Complexity * Effort总和,示例数据如下:
| User | PBI Name | Effort | Complexity | Closed Date | CUMULATE |
|---|---|---|---|---|---|
| USERA | X1 | 1 | 2 | 2024/07/08 | 2 |
| USERB | X2 | 2 | 3 | 2024/07/08 | 6 |
| USERA | X3 | 1 | 4 | 2024/07/09 | 6 |
| USERB | X4 | 2 | 4 | 2024/07/09 | 14 |
| USERB | X5 | 3 | 1 | 2024/07/09 | 17 |
| USERC | X6 | 1 | 1 | 2024/07/09 | 2 |
DAX计算列实现
以下是实现需求的DAX计算列公式,记得将公式中的'你的表名'替换为实际的表名称:
CUMULATE = CALCULATE( SUMX( '你的表名', '你的表名'[Complexity] * '你的表名'[Effort] ), FILTER( ALL('你的表名'), '你的表名'[User] = EARLIER('你的表名'[User]) && '你的表名'[Closed Date] <= EARLIER('你的表名'[Closed Date]) ) )
公式说明
- SUMX:逐行计算每条任务的
Complexity * Effort乘积,再对符合条件的结果求和。 - FILTER + ALL:清除当前行的上下文筛选,筛选出与当前行用户相同,且关闭日期不晚于当前行关闭日期的所有任务数据。
- EARLIER:引用当前行上下文的
User和Closed Date值,确保分组累计的逻辑正确。
内容的提问来源于stack exchange,提问作者Riccardo79
相关产品推荐
相关产品推荐

