网站首页 > 技术文章 正文
今天我们来学习下REDUCE函数的使用方法,我愿意称之为LAMBDA函数的最强辅助函数,他可以循环调用参数,累加结果,下面我们来学习下它的使用方法
一、REDUCE
REDUCE:通过将 LAMBDA 应用于每个值,并在累加器中返回总值,将数组减小为累积值。
语法:=REDUCE ([initial_value], array,lambda (x,y,计算表达式) )
第一参数:初始值,
第二参数:要循环的数组
第三参数:lambda,可以接受2个参数
REDUCE是LAMBDA函数的辅助参数,需要配合LAMBDA,上面的介绍相信很多粉丝都看不明白,下面我们通过实际的案例来具体演示下
二、案例演示
如下图,我们想要求这4个数字平方的和,就可以考虑使用下面的公式
公式:REDUCE(0,B2:B5,LAMBDA(x,y,y*y+x))
参数1:起始值0
参数2:B2:B5,需要循环的区域
参数3:LAMBDA(x,y,y*y+x)
在这里LAMBDA表示式中,X就表示起始值,Y就表示需要循环的区域,函数会将B2:B5逐个代入LAMBDA做计算
当代入数字1,x为0,y为1,1乘1加上0结果为1,LAMBDA会将结果1传回x等待下次计算
当代入数字2,x为1,y为2,2乘2加上1结果为5
当代入数字3,x为5,y为3,3乘3加上5结果为14
当代入数字4,x为14,y为4,4乘4加上16结果为30
以上就是函数的计算过,逐个遍历,将结果累加起来。
三、连接文字
公式:=REDUCE(,B2:B10,LAMBDA(x,y,x&y))
REDUCE函数不仅仅能对数字累加,还能进行文字的连接,如下图,我们就是将几个单元格中的数据连接在了单元格中。
以上就是REDUCE函数的基本用法,下面我们来上点难度,看几个工作中的实际案例
四、批量替换
公式:=REDUCE(C2,{"袋";"kg";"个"},LAMBDA(x,y,SUBSTITUTE(x,y,"")))*1
在这里我们是将单位【袋、kg、个】批量替换为了空值,最后再乘以数字1,将文本数字换换位数字格式的数字方便计算
五、批量指定替换
公式:=REDUCE(C2,F2:F4,LAMBDA(x,y,SUBSTITUTE(x,y,OFFSET(y,,1))))
我们想将中文替换为对应的英文单位,这个公式的逻辑跟案例四是一样的,关键点就是通过OFFSET来做偏移,在这里它的作用是向右移动一行,这样的话就能得到替换值来做替换了
六、同类项拆分
公式:=REDUCE(B4:C4,B5:B7,LAMBDA(x,y,VSTACK(x,IFNA(HSTACK(y,TEXTSPLIT(OFFSET(y,,1),,"、")),y))))
这个公式可以将合并同类项的表格,快速的拆分为这个公式比较的复杂,我们来简单的拆解下
1.我们需要使用TEXTSPLIT函数根据分隔符拆分
2.使用HSTACK函数在拆分结果的左侧连接上对应的班级
3.使用IFNA函数将错位值替换为对应的班级
4.使用 VSTACK来将表头连接到结果的上面即可
以上就是1行数据的转换方式,最后再使用REDUCE函数来做循环遍历即可,不过我们需要注意的是需要将表头B4:C4作为起始值,这样才能添加上表头
以上就是REDUCE函数的使用方法,大家可以动手试一下,这个函数还是非常强大的,大家可以动手试一下
如果你想要提高工作效率,不想再求同事帮你解决各种Excel问题,可以了解下我的专栏,WPS用户也能使用,讲解了函数、图表、透视表、数据看板等常用功能,带你快速成为Excel高手
猜你喜欢
- 2024-12-17 C语言实现推箱子游戏!(超简单详细)代码思路+源码分享
- 2024-12-17 学习笔记之C#基础——数组和集合 c#中数组用法
- 2024-12-17 一篇文章学会golang语法,golang简明教程快速入门
- 2024-12-17 深入理解 Golang 中的值类型和引用类型
- 2024-12-17 SpringBoot系列之数据库初始化-datasource配置方式
- 2024-12-17 C++ 创建数组和使用数组学习笔记 c++如何建立数组
- 2024-12-17 Java Map 中那些巧妙的设计 javamap的用法
- 2024-12-17 大数据开发基础之一维数组的定义、初始化及与二维数组的区别
- 2024-12-17 go语言结构体与初始化 go 结构体初始化
- 2024-12-17 一张图搞懂 Redis 缓存雪崩、缓存穿透、缓存击穿
- 1509℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 528℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 492℃MySQL service启动脚本浅析(r12笔记第59天)
- 472℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 469℃启用MySQL查询缓存(mysql8.0查询缓存)
- 450℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 429℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 426℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)