|
楼主 |
发表于 2023-4-16 20:12
|
显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 shaowu459 于 2023-4-16 20:16 编辑
通过在LAMBDA函数体部分使用VSTACK函数和HSTACK函数,可以将X初始值及后续的X值(均含数组,下同)与每步y运算产生的值或数组进行堆叠。
例如,以下公式将1~10的平方进行纵向堆叠。LAMBDA函数体部分每次运算都使用VSTACK函数将当前y的平方纵向堆叠在当前的x下面。
- =REDUCE("数据",ROW(1:10),LAMBDA(x,y,VSTACK(x,y^2)))
复制代码
同理,使用HSTACK函数可以实现将结果横向堆叠的目的。
- =REDUCE("数据",ROW(1:6),LAMBDA(x,y,HSTACK(x,y^2)))
复制代码
上面的例子是堆叠的单值,如果每次LAMBDA函数体运算产生的是数组,仍然可以堆叠:
=REDUCE(X初始值,数组,LAMBDA(x,y,VSTACK(X,HSTACK(值1,值2,值3))
此时X初始值可以是单值,也可以是数组。在堆叠过程中,由于堆叠数组的列数不同会产生#N/A,可以使用IFNA函数处理。
=REDUCE(X初始值,数组,LAMBDA(x,y,HSTACK(X,VSTACK(值1,值2,值3))
其中HSTACK(值1,值2,值3)或VSTACK(值1,值2,值3)部分不一定由VSTACK函数或HSTACK函数生成,可以是筛选、判断、引用等形成的数组。
|
评分
-
1
查看全部评分
-
|