在Power BI中使用DAX按group_no统计唯一project_no的总营收
Power BI实现分组统计唯一项目总营收
问题说明
原始数据示例:
| group_no | project_no | 营收 |
|---|---|---|
| A | P1 | 100 |
| A | P1 | 100 |
| A | P2 | 200 |
| B | P3 | 150 |
| B | P4 | 250 |
| B | P4 | 250 |
当前直接按group_no求和得到的结果(重复项目营收被重复计算):
| group_no | 总营收 |
|---|---|
| A | 400 |
| B | 650 |
期望结果(仅统计每个组内唯一项目的营收总和):
| group_no | 唯一项目总营收 |
|---|---|
| A | 300 |
| B | 400 |
解决方法
方法1:创建DAX度量值(推荐用于报表展示)
唯一项目总营收 = SUMX( SUMMARIZE('你的表名', '你的表名'[group_no], '你的表名'[project_no], "单项目营收", MAX('你的表名'[营收])), [单项目营收] )
- 逻辑:先通过
SUMMARIZE生成每个group_no+project_no的唯一组合并提取对应营收,再用SUMX对每个组的单项目营收求和。
方法2:Power Query生成汇总表
- 打开Power Query编辑器,加载原始数据
- 选中
group_no和project_no列,点击「开始」→「移除重复项」(去除同一组内重复的项目) - 选中
group_no列,点击「转换」→「分组依据」,设置:- 分组依据:
group_no - 新列名:
唯一项目总营收 - 操作:
求和 - 目标列:
营收
- 分组依据:
- 关闭并上载,即可得到目标汇总表
方法3:DAX新建汇总表
唯一项目营收汇总表 = VAR 去重项目表 = DISTINCT(SELECTCOLUMNS('你的表名', "group_no", '你的表名'[group_no], "project_no", '你的表名'[project_no], "营收", '你的表名'[营收])) RETURN GROUPBY(去重项目表, 去重项目表[group_no], "唯一项目总营收", SUMX(CURRENTGROUP(), 去重项目表[营收]))
- 逻辑:先生成去重后的项目营收表,再按
group_no分组求和。
内容的提问来源于stack exchange,提问作者Cenk
相关产品推荐
相关产品推荐

