您当前没有使用任何递归。你只是想总结一下。如果你真的想在你的LAMBDA()尝试中递归:
=LAMBDA(Input,AddAll,X,IF(X=LEN(Input)+1,AddAll,Addnumbers(Input,AddAll+MID(Input,X,1),X+1)))
我创建了三个参数LAMBDA():
Input- 对您的单元格/数字串的引用;
AddAll- 加起来的总数;
X- 一个简单的计数器,就像我们在 VBA 中编写一个函数一样;
如果你将这个函数添加到你的名字管理器中,你现在可以使用: 来调用它=Addnumbers(I32,0,1),意思是:
- 调用
LAMBDA()我们命名为“AddNumbers”的函数;
- 第一个参数必须是对我们的单元格/字符串的引用;
- 第二个参数是我们当前的总数,一开始为零;
- 第三个参数是我们计数器的开始,应该是 1。
我特别添加了嵌套IF()以进行迭代,iow 递归。检查计数器的IF()当前状态。只有当它大于我们输入的总长度时,它才会返回当前的总长度,否则;递归开始于在我们使用LAMBDA()的第二个参数(参数)中再次调用FALSE:
- 相同的
Input值;
- 用于
MID()将当前索引中的数字之一添加到我们的总数中AddAll;
- 将我们的计数器增加
X1。
现在我们已经排除了递归,我想说如果你想使用这里有更好的选择,LAMBDA()因为不需要递归。尝试:
=LAMBDA(Input,SUM(--MID(Input,SEQUENCE(LEN(Input)),1)))
拨打电话=Addnumbers(I32)。