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

如何在Power Query中按第二物料编号动态计算库存结余?

在Power Query中实现库存结余计算

完全可以在Power Query中实现这个逻辑,步骤如下(假设你的表列名为:第二物料编号、日期、需求、总库存):

  1. 按物料分组
    转到「转换」选项卡,点击「分组依据」:

    • 分组依据字段选择「第二物料编号」
    • 新列名设为「组内数据」,操作选择「所有行」
  2. 组内排序并计算库存结余
    添加自定义列,使用Power Query M语言处理每组内的排序和累计计算:

    Table.AddColumn(
        分组后的表, 
        "处理后数据", 
        each 
            let
                // 按日期升序排序组内数据
                sortedTable = Table.Sort([组内数据], {{"日期", Order.Ascending}}),
                // 获取组内第一行的库存结余:总库存 - 需求
                firstBalance = sortedTable[总库存]{0} - sortedTable[需求]{0},
                // 用List.Accumulate计算后续行的结余:上一行结余 - 当前需求
                balanceList = List.Accumulate(
                    List.Skip(sortedTable, 1),
                    {firstBalance},
                    (prevList, currentRow) => prevList & {List.Last(prevList) - currentRow[需求]}
                ),
                // 将计算结果合并到原表中
                finalTable = Table.AddColumn(sortedTable, "库存结余", each balanceList{Table.PositionOf(sortedTable, _)})
            in
                finalTable
    

    注意:把代码中的「分组后的表」替换成你实际的表名称,列名如果和示例不符也要对应修改。

  3. 展开数据并清理
    点击「处理后数据」列右侧的展开按钮,选择所有需要保留的列(包括新生成的「库存结余」),之后可以删除「组内数据」这类临时列。

这个逻辑和你之前用的Excel公式=IF(A700=A699,J699-D700,E700-D700)完全匹配:同物料的行按日期排序后,第一行用总库存减需求,后续行自动用上一行的结余减去当前需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 16:42:36