【WPS功能分享】WPS表格-高效运行之LET函数妙用

Tam Kingsley
Tam Kingsley

创作者俱乐部成员

最近一直想写一下关于WPS表格函数和测试WPS64位内侧版性能的文章,但不知道写些什么,今天在逛论坛的时候看见有老师提出了一个问题,这样我就有了一个切入点可以分享一下,问题是这样的,如下图,左边是人员及认证登记记录,右边是查询的对应人员最高等级信息,可以看出登记信息里面同一个人员认证信息可以有多个,但查询结果我们只需要知道同一个人员最高认证等级是什么就可以了~

下面我分享一下我的思路,可以看出左边【人员名称】有重复值且顺序也不是规律的,这里我就想到了UNIQUE函数和SORT函数,嵌套使用后如下效果~

在【人员名称】处理好唯一性和排序问题后,发现【认证等级】也有同样的问题,所以我们可以用相同的处理方案,但就在这个时候,我想了一下,能不能【人员名称】和【认证等级】一起排序呢?此时,我想到了另外一个函数SORTBY函数,组合之后效果如下~

到这里已经处理好了唯一性和排序的问题,那么最高等级怎么取呢?此时一个函数浮现在我的脑海里,这就是XLOOKUP函数,这个函数可以指定搜索模式,所以这也是我选择它的原因~

既然选好了函数,我们就要根据这个函数的所需要的参数获取对应的值,通过上文我们可以知道【查找值】我们已经有了,但此时难题又来了,【查找数组】和【返回数组】怎么获取呢?此时我又想到了另外一个函数CHOOSECOLS函数,效果如下~

这个时候我们就完成了【查找值】,【查找数组】和【返回数组】参数的获取,理论上这时已经可以得出结果了,但是另外一个问题又出现了,那就是运行的效率问题,这么多函数运算,运行效率可不就要降低很多,即使我当前使用的是WPS64位版本,但也需要提高一下运算效率,这时又浮现一个函数在我的脑海中,那就是LET函数,既然想到了使用的函数,下面我们就开始尝试~

由上图可以发现结果已经出来了,但是还是不完美,我们想的是可不可以一个函数把【人员名称】和【最高等级】都输出出来呢?我思考了一下,发现我们可以使用HSTACK函数,然后我就来优化一下上面的结果,结果如下图所示~

我总结一下,这次用到的函数有LET、UNIQUE、SORT、SORTBY、CHOOSECOLS、XLOOKUP、HSTACK这几个函数,如下所示就是这次用到的公式~

🔔

LET(a,UNIQUE(SORT(A2:A17)),b,CHOOSECOLS(SORTBY(A2:B17,A2:A17,1,B2:B17,1),1),c,CHOOSECOLS(SORTBY(A2:B17,A2:A17,1,B2:B17,1),2),HSTACK(a,XLOOKUP(a,b,c,,,-1)))

拓展一下针对数据源,我们可以把它转换为超级表,这样在添加数据时结果集就会自动更新~

WPS版本:12.1.0.17154-release(WIN X64 WPS64位内测版本)

系统版本:Windows 11

广东省
浏览 258
收藏
6
分享
6 +1
19
+1
全部评论 19
 
Hao123
都是高手,厉害
· 内蒙古
回复
 
懒得批爆
懒得批爆

2024年03月优秀创作者

智能文档依旧不支持,除了自己看得到以外,不具有协作性。
· 四川省
回复
经历失望变黑子
我觉得没有一个工具特别完美,根据实际情况选择不同工具就好了,根据环境的不同来抉择。没必要特别仅选用一样,看到A说A不如B,,看到B说B不如C,C更优秀。
· 重庆
回复
 
马成功老师
马成功老师

2024年3月优秀创作者

赞赞赞
· 北京
回复
Tam Kingsley
Tam Kingsley

创作者俱乐部成员

请老师多多指教
· 广东省
回复
 
雨后清新
打卡
· 浙江省
回复
Tam Kingsley
Tam Kingsley

创作者俱乐部成员

谢谢,一起进步
· 广东省
回复
 
墨云轩
墨云轩

创作者俱乐部成员

可以利用filter和max函数解决这个问题
· 河北省
1
回复
经历失望变黑子
我比较懒,选择透视表,鼠标点点就成功。
· 重庆
回复
 
亂雲飛渡
厉害
· 广东省
回复
Tam Kingsley
Tam Kingsley

创作者俱乐部成员

谢谢,一起交流一起进步
· 广东省
回复