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

如何用公式生成累计值?Google Sheets递归错误求助

Google Sheets 累计列递归错误解决方案

问题根源

你尝试通过LET()+INDEX()+DECALER()实现H(x)=G(x)+H(x-1)的累计逻辑时触发递归错误,本质是公式间接引用了输出列(H列)自身,触发了Google Sheets的循环引用检测机制。

最优解决方案:使用SCAN函数

Google Sheets内置的SCAN()函数专门处理这类累计计算,无需担心递归问题。假设累计列从H10开始,G列为待累加数据源,直接在H10输入以下公式:

=SCAN(0, G10:INDEX(G:G, B5+9), LAMBDA(acc, val, acc + val))

公式拆解

  • SCAN(0, ...):设置初始累计值为0
  • G10:INDEX(G:G, B5+9):根据B5的行数动态锁定累加范围(从G10到第B5+9行,对应B5行数据)
  • LAMBDA(acc, val, acc + val):定义累加规则,每次将当前行的G列值val加到之前的累计值acc上

旧版兼容方案

如果你的Google Sheets版本不支持SCAN(),可以用ARRAYFORMULA()结合SUMIF()实现:

=ARRAYFORMULA(SUMIF(ROW(G10:INDEX(G:G, B5+9)), "<="&ROW(G10:INDEX(G:G, B5+9)), G10:INDEX(G:G, B5+9)))

原公式错误原因

原公式中DECALER(INDEX(G10:G,sq),-1,0)试图引用上一行的累计结果,但公式写在H列时,相当于间接调用H列自身数据,触发了递归循环检测,导致报错。

内容的提问来源于stack exchange,提问作者Mykel Leclerc Brisson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 19:47:31