Power Query技术求助:将多行数据转置为带代码值的聚合表头
Power Query 实现唯一代码聚合表头的操作方案
- 先确认你的原始数据结构(比如包含主标识、代码、数值列),按以下步骤操作:
- 把数据导入Power Query编辑器,先对主标识+代码的组合做分组聚合(如果同一组合存在重复值):
选中这两列,点击「转换」→「分组依据」,操作选「求和」(或你需要的其他聚合方式),目标列选数值列,新列名设为「聚合值」 - 完成分组后,选中主标识列,点击「转换」→「透视列」:
弹出窗口里,「值列」选刚才的「聚合值」,「高级选项」选对应聚合方式(如果分组已经处理过重复数据,选「不要聚合」),确认后表头会自动变成所有唯一的代码 - 若透视后出现空值,可全选列,用「替换值」功能把空值换成0或空字符串
如果想用M代码直接实现(假设原始表名为原始数据,列是主标识、代码、数值):
let 源 = Excel.CurrentWorkbook(){[Name="原始数据"]}[Content], 分组聚合 = Table.Group(源, {"主标识", "代码"}, {{"聚合值", each List.Sum([数值]), type number}}), 生成聚合表头 = Table.Pivot(分组聚合, List.Distinct(分组聚合[代码]), "代码", "聚合值") in 生成聚合表头
你之前用Group By没得到预期结果,大概率是没配合透视列使用——Group By是先把重复的代码-主标识组合聚合,透视列才是把代码转成表头的关键步骤。
内容的提问来源于stack exchange,提问作者Jitn123
相关产品推荐
相关产品推荐

