快来看,WPS更新了11个新函数!

会飞的鱼
会飞的鱼

KVP函数专家、创作者俱乐部成员

小伙伴们,晚上好,还在搬砖的我突然看到WPS更新了新函数的消息

丢下手中的砖,马上下载更新,已在第一时间使用上了11个新函数,下载地址如下。

官网下载:

https://ai.wps.cn/

或复制下载链接直接下载:

https://pc-package.wpscdn.cn/wps/download/WPS_Setup_AI_16120.exe

新增的11个函数如下图所示。

WPS已支持动态数组功能,一些新函数自身已经可以返回数组结果了,如果需要对函数返回的数组结果进行二次计算,就需要使用数组函数来处理了,WPS本次更新了11个数组函数,可以对数组进行合并、提取、转换、删除等操作,其强大的功能将为你带来意想不到的惊喜。

下面我们来具体看下每个函数的使用场景。

  • VSTACK(垂直拼接数组 行向下)

示例1、多表查询

=VLOOKUP(B5:B7,VSTACK(E5:F11,H5:I11),2,0)

在没有VSTACK函数之前,对多表查询需要使用IFERROR函数多层嵌套,使用VSTACK函数可以将多个单元格区域或数组依次向下拼接成一个数组,作为VLOOKUP函数第2个参数。

示例2、多表去重复

=UNIQUE(VSTACK(E16:E22,H16:H22))

使用VSTACK函数可将多个不相连的单元格区域拼接成一个数组,然后使用UNIQUE函数去重复。

示例3、多表汇总

=FILTER(VSTACK(表1:表3!A2:C1000),CHOOSECOLS(VSTACK(表1:表3!A2:C1000),3)<>"")

使用VSTACK函数可以将连续的多个工作表组的指定单元格拼接,多个工作表行数不同时,可以引用相对较大的区域,拼接后使用FILTER函数将非空的数据筛选出来。

  • HSTACK(水平拼接数组 列向右)

示例、一条公式汇总

=HSTACK(UNIQUE(E5:E11),SUMIFS(F5:F11,E5:E11,UNIQUE(E5:E11)))

HSTACK函数可能横向的依次向右拼接数组,可以将多列公式合并成一条公式。

  • TOROW(将数据转换为一行)

示例、查询组别后将多行多列转为一行

=TOROW(FILTER($J$5:$K$12,$I$5:$I$12=B5),1)

使用FILTER函数查询后返回多行多列数据,使用TOROW函数将多列数据转为一行。

  • TOCOL(将数据转换为一列)

示例1、多列去重复

=UNIQUE(TOCOL(D5:G9))

使用TOCOL函数将多行多列数据转换成一列后,使用UNIQUE函数去重。

示例2、生成所有组合

=TOCOL(TOCOL(TOCOL(D15:D19,1)&"-"&TOROW(E15:E19,1))&"-"&TOROW(F15:F19,1))

考虑到函数的通用性,引用一个相对大一些的单元格区域,使用TOCOL函数,通过设置TOCOL函数的第2个参数为1,忽略空值,可以将空值过滤掉,可以返回所有名称,使用TOCOL函数将规格转成一列,使用“&”运算符连接后可以返回一个多行多列的连接了名称和规格的数组,使用TOCOL函数将多行多列转换成一列,再使用相同方法连接型号后转换。

  • WRAPROWS(将一维数组按行转化为二维数组)

示例、将一列数据转换为多行(按行转换)

=WRAPROWS(G5:G17,3,"")

使用WRAPROWS函数可以多一行或一列的数据按行转换成多行,函数第2个参数可以设置转换后的列数,也可以理解为转换时每N列后换行。

  • WRAPCOLS(将一维数组按列转化为二维数组)

示例、将一列数据转换为多行(按列转换)

=WRAPCOLS(G5:G17,5,"")

使用WRAPROWS函数可以多一行或一列的数据按列转换成多列,函数第2个参数可以设置转换后的行数,也可以理解为转换时每N行后换列。

  • CHOOSEROWS(返回数组或引用中的行)

=CHOOSEROWS(B5:F9,--TEXTSPLIT(CONCAT(REPT(SEQUENCE(5)&"-",G5:G9)),"-",,1))

使用--TEXTSPLIT(CONCAT(REPT(SEQUENCE(5)&"-",G5:G9)),"-",,1)可以根据每行数量,返回对应数量重复N次的行号,使用CHOOSEROWS函数可以返回对应行数的数据。

  • CHOOSECOLS(返回数组或引用中的列)

=CHOOSECOLS(F5:J11,1,4,5)

使用CHOOSECOLS函数可以返回引用区域或数据的指定一列或多列。

  • TAKE(从数组开头或结尾返回行或列)

示例、随机抽奖,抽3名不重复的姓名

=TAKE(SORTBY(F5:H11,RANDARRAY(7)),3)

使用SORTBY和RANDARRAY函数对数据源随机排序,然后使用TAKE函数返回前3行的数据,即可实现随机抽取3行不重复数据。

  • DROP(从数组开头或结尾删除行或列)

示例、金额降序排序后,删除倒数第3以后的行数,如有倒数第3的金额重复的也一同删除

=DROP(SORT(F5:H11,3,-1),-COUNTIFS(H5:H11,"<="&SMALL(H5:H11,3)))

使用SORT函数对源数据进行降序排序,使用SMALL函数计算第3最小值,然后使用COUNTIF函数计算小于等于第3个最小值的数据,使用“-”计算符将数量转换负数,即可从数据的结尾删除指定行数。

  • EXPAND(将数组扩展指定数量行列)

示例、分数60分及以上的行筛选出来并且加一列标注为“优秀”

=EXPAND(FILTER(G5:I11,I5:I11>=60),,4,"优秀")

使用FILTER函数筛选出分数大于等于60分的数据,然后使用EXPAND函数将数据源的3列扩展为4列,设置EXPAND函数第4个参数可以指定扩展后列的填充值。

以上是新增11个数组函数的常规用法,下次更新再见!

辽宁省
浏览 9071
12
15
分享
15 +1
6
12 +1
全部评论 6
 
赵二
点赞收藏学习!
· 辽宁省
1
回复
赵二
非常实用!
· 辽宁省
1
回复
 
姜博
什么时候增加reduce、map、scan等函数
· 山东省
回复
 
Hao123
期待大佬可以做个动图演示
· 内蒙古
回复
 
刘航
刘航

创作者俱乐部成员

跟着大佬学习新函数~
· 北京
回复
 
拾光漫行
拾光漫行

WPS函数专家

跟着大佬学习
· 重庆
回复