网站首页 > 技术文章 正文
今天我们来学习下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 缓存雪崩、缓存穿透、缓存击穿
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)