对reduce函数的逻辑产生疑惑~

=REDUCE(0,A2:A20,LAMBDA(y,x,VSTACK(y,y&"+"&x)))

我的理解:

首先把A2赋值给X,然后产出0+X

然后A3赋值给X,产出0+A2+A3

……

最后,把A20赋值给X,产出0+A2+A3……+A20

输出结果为19个组合

实际情况:

A2:A20形成一个19的19次方种结果的输出组合

请问:关于reduce的赋值X,不是按固定顺序赋值的么?

广东省
浏览 109
收藏
1
分享
1 +1
5
+1
全部评论 5
 
千叶
如果你只是想实现阶梯的增长 改成=SCAN(0,A2:A20,LAMBDA(Y,X,Y&"+"&X))
· 江西省
回复
 
千叶
看下图 不知道你能否看明白 主要注意你的y是数组 数组与单字符串组合的结果也是数组
· 江西省
回复
Alex
太棒了,感谢~~终于理解为什么成为遍历了~
· 广东省
回复
 
聂道强
聂道强

@金山办公

vstack返回的是数组,相当于第一步的结果是{0;"0+19.64"},然后再把这个结果代入第二步
· 广东省
回复
Alex
不知道为什么,会生成:{0;"0+19.64";"0+230.92";"0+275.02";……},把所有数据都遍历了一次
· 广东省
回复