在Excel Power Query中如何将指定Key对应的多行数据合并为单行展示
Power Query 按Product ID合并多行至单行操作流程
以下为全界面化操作步骤,无需手动编写复杂M代码:
- 步骤1:导入数据并分组
选中源数据表,点击Excel顶部「数据」选项卡→「从表格/范围」,导入Power Query编辑器。选中Product ID列后右键点击「分组依据」,分组设置如下:- 新列名:填写
采购明细 - 操作:选择「所有行」
确认后即可得到按Product ID分组的汇总表。
- 新列名:填写
- 步骤2:给分组内记录添加序号
点击顶部「添加列」选项卡→「自定义列」,自定义列公式输入:Table.AddIndexColumn([采购明细], "采购序号", 1, 1, Int64.Type)
确认后会新增一列,每个单元格存储的是带序号的分组内采购记录。 - 步骤3:筛选仅保留前2条采购记录
点击自定义列右上角的展开按钮,展开采购序号、Purchase ID、Amount三个字段,然后筛选采购序号列,仅保留值≤2的记录。 - 步骤4:透视列实现横向展开
选中采购序号列,点击顶部「转换」选项卡→「透视列」,分两次完成透视:- 第一次透视:值列选择
Purchase ID,高级选项选择「不要聚合」,确认后会生成Purchase ID_1、Purchase ID_2两列 - 第二次透视:值列选择
Amount,高级选项同样选择「不要聚合」,确认后会生成Amount_1、Amount_2两列
注意:透视时必须选择「不要聚合」,否则会导致字段值计算错误
- 第一次透视:值列选择
- 步骤5:空值处理与导出
如果需要统一空值的展示内容,可以选中对应列右键点击「替换值」,查找值留空,替换为你需要的占位符即可。最后点击「关闭并上载」即可把处理完成的表导出回Excel。
拓展提示:如果需要指定采购记录的排序规则(比如按采购时间先后、金额大小取前2条),可以在添加索引列的公式中插入排序逻辑,例如需要按Purchase ID升序排序取前2条的话,自定义列公式修改为:
Table.AddIndexColumn(Table.Sort([采购明细],{{"Purchase ID", Order.Ascending}}), "采购序号", 1, 1, Int64.Type)
内容的提问来源于stack exchange,提问作者jakebo03
相关产品推荐
相关产品推荐

