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

如何在Power Query中实现同列逐行递推乘积计算

Power Query 实现链式递推计算方法

你要的「当前行值=上一行值*1.05」的逐行递推逻辑,不要用网上流传的索引偏移、双索引方案——这类方案本质是做固定范围的聚合计算,仅适配累计求和类场景,处理链式依赖的递推逻辑效率极低甚至会出现计算错误,直接用List.Generate函数做序列生成即可,计算逻辑和Excel下拉填充完全一致,性能也足够支撑十万行以上的大数据量场景。

具体操作步骤

  • 提前填好[Sales Growth]列第一行(第一个月份)的初始值,这是整个递推逻辑的计算基准
  • 不需要额外添加索引列,直接打开Power Query的高级编辑器,在源数据步骤后追加递推逻辑即可
  • 核心M代码参考如下,将代码里的源替换成你自己的源表步骤名就能直接用:
// 读取递推初始值(第一行的Sales Growth值)
baseValue = 源[Sales Growth]{0},
// 按规则生成完整递推序列,序列长度和源表总行数保持一致
calcList = List.Generate(
    () => [val = baseValue, idx = 0],
    each [idx] < Table.RowCount(源),
    each [val = [val] * 1.05, idx = [idx] + 1],
    each [val]
),
// 将生成的递推序列替换回原表的Sales Growth列
finalTable = Table.FromColumns(
    List.RemoveMatchingItems(Table.ToColumns(源), {源[Sales Growth]}) & {calcList},
    List.RemoveMatchingItems(Table.ColumnNames(源), {"Sales Growth"}) & {"Sales Growth"}
)

注意:如果后续要调整递推规则,直接修改[val] * 1.05这部分的计算逻辑即可,不管是乘系数、加固定值还是套用其他复杂计算规则,只要是依赖上一行结果的链式计算,都可以用这个框架实现,最终计算结果和Excel下拉填充的效果完全匹配。

Excel端实现效果示例,需在Power Query中达成同等效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 08:06:18