夜雨聆风学习资料网

ARTICLE · 1324720

wps表格两个reduce函数和lambda组合使用举

wps表格两个reduce函数和lambda组合使用举

前阵子折腾 WPS 表格,遇到个挺绕的活儿:要从一列带分隔符的文本里,把数字全抠出来。

本来想用 REDUCE 加 LAMBDA。这俩函数通常结对出现——REDUCE 管循环和累积结果,LAMBDA 定每一步怎么算。

先看单个 REDUCE 怎么跑。比如算 A2:A5 的立方和:

=REDUCE(0, A2:A5, LAMBDA(x, y, x + y^3))

x 是累积值,从 0 起;y 是当前单元格。每走一格,就把 y 的立方加到 x 上,最后吐出总和。

可现在要处理多行嵌套数据,一个不够用了。真正绕的是两个 REDUCE 套一块:

=DROP(REDUCE("", A2:A7, LAMBDA(x, y, VSTACK(x, IFNA(HSTACK(y, REDUCE(, REGEXP(TEXTSPLIT(OFFSET(y,,1),,"、"), "[0-9.-]+", 3), VSTACK)), y))), 1)

外层 REDUCE 管“行”。它拿空文本起步,逐行遍历 A2:A7,每拿到一行结果就往下堆。

内层 REDUCE 管“列”。外层走到某一行时它就开工,把旁边那列文本按“、”拆开,再用正则提取所有数字,竖着堆成一列。

最后 HSTACK 把行标识和数字拼一起,DROP 删掉最上面那行空白,整表就成了。

说白了,外层负责收集组装,内层负责拆解转换。LAMBDA 只是让每一步的计算规则能随便自定义。

原文wps表格两个reduce函数和lambda组合使用举例说明
江西,1小时前,

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料