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

如何在Google Sheets公式中实现递归?

在Google Sheets原生公式中实现Lambda递归的方法

要让Google Sheets的Lambda函数实现递归,核心是在LET函数内部将Lambda自身定义为可引用的变量,让函数能够调用自己。

经典递归示例:计算阶乘

递归阶乘的逻辑是:n! = n × (n-1)!,终止条件为0! = 1,对应的公式实现如下:

=LET(
  fact, LAMBDA(n, IF(n=0, 1, n * fact(n-1))),
  fact(5)
)

这里fact这个Lambda函数在LET的作用域内可以被自身引用,当输入的n等于0时触发终止条件返回1,否则递归调用自身计算n-1的阶乘并完成乘法运算。

对比你的尝试

你之前的代码只是重复调用Lambda函数,但函数本身没有引用自身,属于函数复用而非递归。只有让Lambda能访问到自身的定义,才能实现自我调用的递归逻辑。

另一个实用示例:递归求和数组

下面的公式会递归地对数组元素求和,直到数组仅剩一个元素时返回该值:

=LET(
  sum_recur, LAMBDA(arr, IF(ROWS(arr)=1, arr, INDEX(arr,1) + sum_recur(DROP(arr,1)))),
  sum_recur(A1:A5)
)

注意事项

Google Sheets对递归深度有上限(约100层),如果递归深度超出限制会触发错误,所以务必确保终止条件能被正确触发,避免无限递归。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 23:27:30