一个案例了解WPS函数进化史!
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))),"")
=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精精
创作者俱乐部成员