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

Power Query按分组循环计算期初/期末库存的实现问题求助

Power Query 按物品独立计算库存期初/期末值的解决方案

核心问题解决步骤

你的需求是按物品独立计算每日的Begin Inv.和End Inv.,其中次日Begin Inv.等于前一日End Inv.,可以通过分组+List.Accumulate迭代计算实现,具体操作如下:

  1. 按物品分组
    进入Power Query编辑器,点击「转换」选项卡 → 「分组依据」,设置:

    • 分组列:选择你的物品名称列(比如“物品”)
    • 新列名:输入GroupedRows
    • 操作:选择「所有行」
      点击确定后,数据会按物品分成每组一行的结构,每行包含该物品的所有原始数据行。
  2. 添加自定义列实现迭代计算
    点击「添加列」选项卡 → 「自定义列」,粘贴以下M代码(根据你的实际列名调整,比如Begin Inv.、Delta是你的原始列名):

    let
        Rows = [GroupedRows],
        // 获取当前物品第一天的期初库存
        InitialBegin = Rows[Begin Inv.]{0},
        // 获取该物品所有日期的Delta值列表
        DeltaList = Rows[Delta],
        // 用List.Accumulate迭代计算每日库存
        Accumulated = List.Accumulate(DeltaList,
            // 初始状态:第一天的期初、期末,以及结果集合
            [CurrentBegin = InitialBegin, CurrentEnd = InitialBegin + DeltaList{0}, Result = {{InitialBegin, InitialBegin + DeltaList{0}}}],
            (state, currentDelta) =>
                let
                    NewBegin = state[CurrentEnd],
                    NewEnd = NewBegin + currentDelta,
                    UpdatedResult = state[Result] & {{NewBegin, NewEnd}}
                in
                    [CurrentBegin = NewBegin, CurrentEnd = NewEnd, Result = UpdatedResult]
        ),
        // 将计算结果转为表格
        InvTable = Table.FromList(Accumulated[Result], Splitter.SplitByNothing(), {"Begin Inv.", "End Inv."}),
        // 给计算表添加索引,和原始行对齐
        InvTableWithIndex = Table.AddIndexColumn(InvTable, "Index", 0, 1),
        // 给原始行添加索引,用于合并
        RowsWithIndex = Table.AddIndexColumn(Rows, "Index", 0, 1),
        // 合并原始行和计算后的库存列
        CombinedTable = Table.Join(RowsWithIndex, "Index", InvTableWithIndex, "Index"),
        // 删除多余的索引列
        FinalTable = Table.RemoveColumns(CombinedTable, {"Index"})
    in
        FinalTable
    

    点击确定后,会得到包含计算后库存列的表格。

  3. 展开表格并整理
    点击自定义列右侧的展开按钮,选择所有需要保留的列(除了GroupedRows),点击确定后,就得到了按物品独立计算的每日Begin Inv.和End Inv.。

学习渠道推荐

作为入门两周的学习者,推荐几个实用的学习路径:

  • 官方文档:微软Power Query M语言官方参考,覆盖所有函数的详细说明和基础示例,适合查缺补漏。
  • 国内论坛:ExcelHome论坛的Power Query板块,有大量真实业务案例和用户分享的解决方案,遇到问题可以发帖求助。
  • 书籍:《Power Query实战:数据处理与分析》,从基础操作到M语言进阶都有系统讲解,适合入门到提升。
  • 免费视频:国内视频平台搜索“Power Query 入门教程”,有很多系列免费课程,跟着实操能快速上手。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 07:40:24