f = XLOOKUP(查询内容,A列,B列,"") 在A列查询对应的B列,查询不到就返回空,查询出来的记录,我们要继续重复上面的查询,直到返回值为空,比如最后一个成品,再次在A列中已经查询不到,就返回这个成品递归的中间过程如何处理呢?我们需要用当前查询的值-> 后面每查询返回的值!
f = XLOOKUP(查询内容,A列,B列,"") 在A列查询对应的B列,
查询不到就返回空,查询出来的记录,我们要继续重复上面的查询,
直到返回值为空,比如最后一个成品,再次在A列中已经查询不到,
就返回这个成品
递归的中间过程如何处理呢?
我们需要用当前查询的值-> 后面每查询返回的值!
=LET( f, LAMBDA( f,x, LET(S,XLOOKUP(x, A:A, B:B, ""), IF(S = "", x, x & "->" & f(f, S)) ) ), f(f,E2))
=LET(
f,
LAMBDA(
f,x,
LET(S,XLOOKUP(x, A:A, B:B, ""),
IF(S = "", x, x & "->" & f(f, S))
)
),
f(f,E2)
第一排的人都知道自己的初始号,现在你坐在最后一排,你想知道自己的,编号,你就问前面一位同学,前面同学也不知道,就继续往前问,直到问到第一排同学(出口,有解的人),第二位同学,知道第一排同学的编号是10,那么他就是11,依次往后传,最后你就是知道知己的编号了!这里,第一位同学知道自己的编号,也就是函数有解,是出口,第二是递推关系,这里是编号+1,还有一点,就是递归会让问题规模不断变小,这个你或许也发现了!递归难的是寻找出口和递推关系!我们的案例是 当前查询内容->后续查询内容
第一排的人都知道自己的初始号,现在你坐在最后一排,你想知道自己的,编号,你就问前面一位同学,前面同学也不知道,就继续往前问,直到问到第一排同学(出口,有解的人),第二位同学,知道第一排同学的编号是10,那么他就是11,依次往后传,最后你就是知道知己的编号了!这里,第一位同学知道自己的编号,也就是函数有解,是出口,第二是递推关系,这里是编号+1,还有一点,就是递归会让问题规模不断变小,这个你或许也发现了!
递归难的是寻找出口和递推关系!
我们的案例是 当前查询内容->后续查询内容
比如一个简单的求和,1~n的和=1 加上 1到n-1的和,这就是他们的递推关系!