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

Google Sheets中ArrayFormula能否递归引用自身计算结果?

解答

ArrayFormula 本身不支持直接自引用实现递归计算,直接在公式中引用上一行同列的计算结果会触发循环引用报错,无法正常运行。
你需要的「上一行输出结果参与下一行计算」的迭代逻辑,不需要依赖自引用,使用Google Sheets原生的SCAN累积数组函数即可实现,单个公式放在C1单元格就能自动适配动态增长的行数,适配实时数据源场景,不需要手动下拉填充,也不需要开启表格的迭代计算开关。

可用公式

根据你描述的规则:首行C1 = A1+B1,从第2行开始Cn = C(n-1) + Bn,对应公式如下:

=ARRAYFORMULA(IF(A:A="",,SCAN(A1+B1,ROW(A:A),LAMBDA(prev_res,cur_row,IF(cur_row=1,prev_res,prev_res+INDEX(B:B,cur_row))))))

公式逻辑说明

  • 外层IF(A:A="",,)用于过滤空行:当A列还没有实时数据写入时,对应行C列不会显示错误值或冗余内容,新行写入数据后会自动触发计算
  • SCAN函数专门用于逐行累积迭代计算:
    • 第一个参数A1+B1是迭代的初始值,也就是C1的计算结果
    • 第二个参数ROW(A:A)表示遍历表格所有行
    • 第三个参数为迭代逻辑:prev_res代表上一行C列的计算结果,cur_row代表当前遍历到的行号;当前为第1行时直接返回初始值,从第2行开始,用上一行的计算结果加上当前行B列的数值,完全匹配你需要的迭代计算规则
  • 该方案为原生数组计算,不会出现循环引用导致的计算错乱、性能下降问题,行数自动增加时会同步完成计算。

内容的提问来源于stack exchange,提问作者Richard Dennis Bartlett

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 00:16:13