Power BI中基于DAX按条件合并多行并聚合数据的技术求助
在Power BI中合并相同BatchNo的Loading Dates并汇总NetWeight Shipped的解决方案
方法一:Power Query 数据预处理(推荐,数据层面永久整合)
这种方式直接调整数据源结构,后续报表使用更省心:
- 点击【转换数据】进入Power Query编辑器
- 选中
BatchNo列,点击顶部【转换】选项卡的【分组依据】 - 在分组设置窗口中配置:
- 分组列选择
BatchNo - 添加第一个聚合列:名称填
TotalNetWeight,操作选【求和】,关联列选NetWeight Shipped - 添加第二个聚合列:名称填
CombinedLoadingDates,操作选【所有行】,关联列选Loading Dates
- 分组列选择
- 点击
CombinedLoadingDates列右侧的展开箭头,选择【提取值】,设置分隔符(如逗号、分号)后确认 - 关闭并应用,此时数据已按
BatchNo合并日期并完成重量汇总
方法二:DAX度量值(报表可视化时动态计算)
若无需修改源数据,可通过DAX在报表中实现需求:
- 创建汇总重量的度量值:
Total NetWeight Shipped = SUM('你的数据表名'[NetWeight Shipped])
- 创建合并日期的度量值(日期类型转规范文本格式,避免显示异常):
Combined Loading Dates = CONCATENATEX( VALUES('你的数据表名'[Loading Dates]), FORMAT('你的数据表名'[Loading Dates], "yyyy-MM-dd"), ", " )
- 在报表中插入表格,将
BatchNo列拖入值区域,再添加上述两个度量值,即可看到每个BatchNo对应的合并日期和汇总重量
若Loading Dates存在重复值,可在外层套DISTINCT来去重:
Combined Loading Dates = CONCATENATEX( DISTINCT('你的数据表名'[Loading Dates]), FORMAT('你的数据表名'[Loading Dates], "yyyy-MM-dd"), ", " )
内容的提问来源于stack exchange,提问作者Peter Nguy Nguyen
相关产品推荐
相关产品推荐

