You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Query:如何将重复行的Code列内容移至新列并合并金额

解决Power Query中重复发票的Code拆分与Amount合并问题

操作步骤

1. 导入数据并添加索引列

将数据导入Power Query编辑器后,切换到添加列选项卡,点击索引列 → 从1开始。这一步用来标记同一发票下的记录顺序,保证第一个Code保留在原Code列。

2. 按Invoice分组

切换到转换选项卡,点击分组依据:

  • 分组列选择Invoice
  • 新列名输入GroupedData
  • 操作选择所有行,点击确定。此时每个Invoice对应的多条记录会被打包成一行的列表数据。

3. 添加自定义列处理数据

点击添加列 → 自定义列,命名为ProcessedData,输入以下M代码:

let
    CodeList = [GroupedData][Code],
    AmountTotal = List.Sum([GroupedData][Amount]),
    MainCode = List.First(CodeList),
    OtherCodes = List.Skip(CodeList, 1)
in
    [
        Invoice = [Invoice],
        Code = MainCode,
        Code2 = if List.Count(OtherCodes)>=1 then OtherCodes{0} else null,
        Amount = AmountTotal
    ]

这段代码的作用是:

  • 提取当前分组下的所有Code值
  • 计算该发票的总Amount
  • 把第一个Code放到Code列,第二个Code放到Code2列(没有的话留空)

4. 展开并整理数据

点击ProcessedData列右侧的展开按钮,选择所有字段展开,然后删除多余的GroupedData列。最后调整列顺序,就能得到目标格式的结果。

如果你的数据里同一Invoice下有更多Code(比如Code3、Code4),可以修改OtherCodes的处理逻辑,比如用List.Transform生成多个Code列,再展开即可。

内容的提问来源于stack exchange,提问作者Orfevre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 11:45:34