一个案例了解WPS函数进化史!

E精精
E精精

WPS函数专家

请看下图,是一个典型的案例,经常被问,过去这个需求实现非常困难,尤其没有文本聚合函数的时代!下面我们就看一下各阶段处理这个问题的方法!

01 | 数组三键时代-V1.0

在动态数组没有出现之前,我们想对数据去重得到唯一值是一件非常困难的事情,典型的解法就是"万金油"的套路+PHONETIC函数

新手看到要哭
=IFERROR(INDEX(B:B,SMALL(IF(MATCH($B$2:$B$10,$B$2:$B$10,)=ROW($B$1:$B$9),ROW($B$2:$B$10)),ROW(A1))),"")

组员合并,在文本合并函数出现之前更是困难无比,使用下面公式的前提条件还要数据按组别已经排序!

=MID(SUBSTITUTE(PHONETIC(OFFSET($B$1,MATCH($E2,$B$2:$B$10,),,COUNTIF(B:B,E2),2)),E2,","),2,99)

怎么样?在过去函数的学习成本真的很大,这只是简单的去重合并就已经让人奔溃!不过动态数组出现之后这个问题得到了简化

02 | 新函数时代-V2.0

新函数出现,虽然还没进入动态数组的时代,但是这批函数,大大简化了过去一些复杂的公式,比如去重这种常见需求,UNIQUE 一个函数即可,不过这会儿还不会自动扩展,需要辅助INDEX等函数提取,但是也简化了很多了!

=INDEX(UNIQUE($B$2:$B$10),ROW(A1))

内容的合并,也不再需要绞尽脑汁,直接按照筛选+合并的思路书写!

=TEXTJOIN(",",1,FILTER($C$2:$C$10,$B$2:$B$10=$E3))

这个时候学习函数的朋友,我非常羡慕,学习成本真的大大降低,不用再扫脑去构建内存数组!

03 | 动态数组时代-V3.0

动态数组推出不久,部分新函数还在内测,这个时代真的进入了函数式编程时代,让很多过去需要VBA变成处理的问题,现在函数也可以轻松处理,一式搞定!

对!你看错,现在一个公式即可搞定,公式自动扩展,无需下载填充!REDUCE 迭代循环,配合VSTACK等数组操作函数,让很多,过去需要分多步处理的需求,现在一次即可搞定!

=REDUCE(B1:C1,UNIQUE(B2:B10),LAMBDA(x,y,VSTACK(x,HSTACK(y,TEXTJOIN(",",1,FILTER(C2:C10,B2:B10=y))))))

补充更新:2024年4月26日

04 | 动态数组时代-V4.0[未来]

=GROUPBY(B1:B10,C1:C10,IF({1;0},ARRAYTOTEXT,"组员"),3,0)

这个目前WPS内测,估计2024年5月上线,看看未来的变化吧~ 挡不住的时代洪流~

今天的内容就到这里,这里是易办公 - 早下班 的Excel办公实战,我是小编E精精

江苏省
浏览 2483
21
46
分享
46 +1
61
21 +1
全部评论 61
 
QQ
打卡
· 河南省
回复
 
伶俐虫
打卡
· 北京
回复
 
周世旭
目前测试来看,wps的高阶函数还有很大一段路要走,在一些复杂的双路径递归,循环+递归的例子中,它总是计算不出来。但office365却没有问题
· 浙江省
回复
 
闻宇
学习
· 江苏省
回复
 
算法王sir
学习
· 四川省
回复
 
QQ
学习
· 河南省
回复
 
QQ
学习
· 河南省
1
回复
 
Han 
打卡
· 湖南省
回复
 
QQ
打卡
· 河南省
回复
 
1231393578237
· 四川省
回复
 
phoenix_l
学习
· 山东省
回复
 
Shari~陈傲霜
打卡
· 四川省
回复
 
李强
打卡
· 安徽省
回复
 
殊泯
学习
· 湖北省
回复
 
钢铁侠
厉害了
· 湖北省
回复
 
༼༎ຶᴗ༎ຶ༽
发财
· 福建省
回复
 
冠美小陈小智
感谢分享,打卡
· 广西
回复
 
东成西就
感谢分享
· 浙江省
回复
 
T影像
厉害了
· 新疆
回复
 
查查老师
查查老师

创作者俱乐部成员

· 上海
回复