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

在Power Query中基于列条件添加注释列,识别发票物料批次连续性

在Power Query中新增发票物料批次连续性判断注释列

现有一张记录发票物料信息的数据表,需新增注释列标记对应行的批次为「连续」或「未追踪」,预期结果如下:

发票编号日期发票计数产品编码批次批次序列号所需注释新列
957333442931/07/2023157663TAP3F200264未追踪
957333443031/07/2023168691UIWZ3060571未追踪
957333443131/07/2023057822MKL3D200311未追踪
957333443131/07/2023069422MKL3D200281连续
957333443131/07/2023169422MKL3D200322连续
957333443131/07/2023069469MKL3F200391未追踪
957333443231/07/2023167671SPR3B200265未追踪
957333443331/07/2023159175SPR3B200642未追踪
957333443431/07/2023170963MKL3B230393未追踪
957333443531/07/2023170963MKL3B230382未追踪
957333443631/07/2023168691UIWZ3060571未追踪
957333443731/07/2023157663TAP3F200264未追踪
957333443731/07/2023069012TAP3F200254未追踪
957333443831/07/2023155710TAP2F200433未追踪
957333443831/07/2023055714TAP3A200113未追踪
957333443931/07/2023166966HAP2F201142连续
957333443931/07/2023066966HAP2F201153连续

判断规则

  • 当同一发票编号+同一产品编码的分组下,存在至少2条记录,且其中有至少两个批次序列号为连续整数时,该分组内的所有记录标记为「连续」
  • 其余所有情况标记为「未追踪」

Power Query实现步骤

  1. 将数据源导入Power Query编辑器,确保「批次序列号」为数值类型(若当前是文本,可通过「转换」>「数据类型」>「整数」修改)
  2. 按「发票编号」和「产品编码」分组,保留分组内所有行:
    = Table.Group(源, {"发票编号", "产品编码"}, {{"所有行", each _, type table [发票编号=text, 日期=date, 发票计数=number, 产品编码=text, 批次=text, 批次序列号=number]}})
    
  3. 添加自定义列,判断分组内是否存在连续批次序列号:
    = Table.AddColumn(上一步结果, "是否连续", each 
        let
            排序序列号 = List.Sort([所有行][批次序列号]),
            连续检查 = List.AnyTrue(List.Zip({排序序列号, List.Skip(排序序列号)}), (x) => x{1} = x{0} + 1),
            记录总数 = Table.RowCount([所有行])
        in
            记录总数 >= 2 and 连续检查
    )
    
  4. 展开「所有行」列,恢复原始数据结构
  5. 新增「所需注释新列」,根据「是否连续」字段赋值:
    = Table.AddColumn(展开结果, "所需注释新列", each if [是否连续] then "连续" else "未追踪")
    
  6. 可选择删除「是否连续」辅助列,完成后关闭并上载数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 13:16:06