WPS新增7大动态数组函数,体验如何?
WPS函数专家
嗨!大家好,我是小编E精精!
今天我们来分享一下,最近参加金山WPS的内测情报!对经过一段时间的开发,终于放出了最新的一组动态数组操作函数,这些是动态数组的核心函数!下面我们依次来看一下!
一图概述
微软相关函数出来有一阵子,但是由于国内使用WPS的用户还是比较多的,难以推广开,终于WPS也更新了,这对于新函数的推广和普及非常重要!
▼ 一图概揽
函数详解
我们按照顺序,先从简单好用的开始聊!
函数01 | MAP函数
MAP函数,非常简单,就是对指定的单元格区域或者数组中的每一个元素都过一遍我们自己自定义的逻辑处理函数!当然也支持多个数组,这里我们简单演示单参数的处理!
下面这个案例就对1~10中的每个值都*2,然后返回!
当然,你也可以选择单元格区域,看上去更加直观!注意这些函数都是动态数组,也就是公式的结果是一个数组,自动扩展开,不需要下来填充!非常方便!
下面我们看行列处理函数,大部分情况用于聚合行列,这三个函数每次结算的结果都不允许是数组!
函数02 | BYROW/BYCOL函数
BYROW和BYCOL是兄弟函数,他们用法完全一样,只是一个按行处理,一个按列处理!
下面案例的需求是找出每个人的最高销售额,也就是逐行处理,找到其中的最大值,写法如下!
当然,WPS目前也是支持ETA规约写法,至于是什么不重要,可以理解为一种语法糖!不需要其他处理,如果是和前面参数对应的函数,都可以简写!
在没有新函数的过去,处理这个问题,有点麻烦!需要你有一定的数组构建经验!
BYCOL函数,我们不再举例,你上面换一下,就变成按月维度,找出当月最高的销售额!
上面只是演示了聚合函数MAX,其他SUM、MIN等结果为单值的函数都可以调用处理!
函数03 | MAKEARRAY函数
MAKEARRAY函数看名字大概就知道是干什么用的,制造函数!
比较典型的案例就是乘法口诀表了!
第一和第二参数,分别表示行列要循环的次数!下面的判断条件是r>=c表示只有行大于等于列才计算,否则返回空!结果是一个r * c的数组!
▼ 系统教程案例节选
下面这个小区单元生成案例更加直观!
可以配合TOCOL函数,转成一列,有点笛卡尔积的意思了!
这个案例简单,后面我们还有更多案例讲解!
中间,我们插一下,比较简单的,ISOMITTED函数,判断LAMBDA自定义函数,参数是否缺失的!
函数04 | ISOMITTED函数
如下面案例,我们用LAMBDA自定义了一个相加函数,但是如果用户没有输入y参数,直接填写逗号,那么默认就是10,否则按照y参数实际值计算!
你是不是想问,不写逗号行不行,我预判了……
答案是不行!
最后两个是重头戏函数,REDUCE可以说是动态数组的灵活函数,是动态数组的灵魂!我们把他和SCAN对比一起学习,因为他们有相似也有不同之处!
函数05 | SCAN和REDUCE函数
REDUCE和SCAN都有两个对应的处理参数,分别对应第一参数的初始值和第二参数中需要遍历处理的内容,不同的是REDUCE把每次计算结果,作为下一次的初始值,循环累积,SCAN会把每次的处理结果都保留下来,继续累积!
下面我们看一个简单案例对比一下!除了函数名称不同,剩下的参数写法基本完全一样,但是他们的结果区别很大!
1、REDUCE处理结果是一个单值,相当于累加,每次计算的结果都是下一次的x
2、SCAN函数按逻辑也是没加,只是ta每计算一次,都会出一个结果,最后的结果和原数组尺寸一致!
篇幅关系,以上只是这两个函数的入门演示说明,更多案例可以阅读之前OFFICE推出写的系统文章!非常详细且案例较多,分析透彻!
WPS这些新函数目前还在小范围内测,测试中也发现了一些问题,比如参数单元格引用丢失等问题,相信修复BUG后不久将全面上线,期待吧!上线后,很多日常需要VBA处理的难题,函数也可以轻松处理了!可以称作为函数式编程!
▼系列教程-图文+视频+交流群▼
投票你了解动态数组函数吗?(4选1)
- 不知道 16
- 看到别人用过,自己没体验过 7
- 使用过,不太会 8
- 非常好用,一生推 13
WPS函数专家
WPS函数专家
WPS函数专家
创作者俱乐部成员
@金山办公
WPS函数专家
WPS函数专家