首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Zlookup、Vlookup再见!史上No.1智能的查找函数XsFilter 来了,竟然可以显示相似度.....

前言:标题中的函数名称写错了,xsfilter应为JLOOKUP,前几天,兰色分享过一个可以按相似率查找的函数。

=ZLookup(A2,D$2:D$9,E$2:E$9,60%)

60%是自定义的值,根据实际要求相似度设置和调整

有同学试了后说结果是错的,其实不是结果错,是这个函数只能单向判断相似率,如AB,ADRB计算后就是100%,计算原因是后面完全包括前言。

这两天兰色又编写了一个更强大的近似查找函数Jlookup,相对于Zlookup,做了以下4点功能改进:

按双向计算相似度

可以返回多列值

可以实现多行批量查找

可以显示相似率。

语法:

JLOOKUP(查找值或区域,查找返回的区域,最低相似率)

语法说明:

查找值或区域:可以是一个值也可以引用多行值,引用一列值时可以批量查找

查找返回的区域:查找并返回的区域。区域的第1列必须是查找值对应的列,可以使用ChooseCols引用不相似的多列。注意不能整列引用。

最低相似率:查找返回的值最低相似率,低于该相似率的将不计算。

【例】如下动图所示,需要根据E列名称从A列查找近似率在60%以上公司名称,还要显示营业额和相似度。

=Jlookup(E2:E5,A1:B10,60%)

如果只需要营业额,可以用ChooseCols函数提取

=CHOOSECOLS(Jlookup(E2:E5,A1:B10,50%),2)

注:如果需要营业额和相似度,把2替换成2,3

如果把最低相似率放在单元格中并加一个微调按钮(excel开发工具-插入,WPS插入-窗体)调整起来更方便。

注意:由于微调按钮不能直接调整小数,所需要借助一个辅助单元格。

JLookup函数添加方法:

通过定义名称(名称Jlookup),把下面公式粘到引用位置中:(版本需要office365或wps最新版本支持)

=LAMBDA(查找值区域,返回列,最低相似率,DROP(REDUCE("",查找值区域,LAMBDA(w,z,VSTACK(w,IFERROR(LET(K,TAKE(LET(z,MAP(TAKE(返回列,,1),LAMBDA(X,LET(y,IF(LEN(X)>LEN(z),X,z),COUNT(FIND(MID(y,SEQUENCE(LEN(y)),1),IF(LEN(X)>LEN(z),z,X)))/LEN(y)))),SORT(FILTER(HSTACK(返回列,z),z>=最低相似率),COLUMNS(返回列)+1,-1)),1),HSTACK(DROP(K,,-1),TEXT(TAKE(K,,-1),"0.00%"))),"")))),1))

兰色说:估计很多同学看到引用的公式会懵,其实这也是用新函数的意义,以后固定套路的复杂公式,都可以封装成简单明了函数来使用。还有一点注意,不要整列引用,如B:B,有多少行选多少行即要。

另外,这个函数兰色测试了一天时间才搞定,如果觉得好用,别忘了给兰色点个赞哦。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OeCMiL2cNOEMoGo8PDatQFQA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券