打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel如何实现模糊近似匹配!

最近,不止一个老铁后台问我,如何实现简称匹配全称的问题,其实也就是普遍的模糊匹配问题!今天就系统讲一下!

常见问题01 | 全称找简称

=LOOKUP(1,0/FIND($D$2:$D$6,A2),$D$2:$D$6)

思路说明:

1、全称找简称的思路,其实也是把全部简称都在当前查找的全称中查找一遍,这个查找常用FIND函数处理,FIND(查什么,在哪里查)

2、FIND的结果,如果找到返回对应简称在全称中的位置,否则返回错误值
这种情况下,需要你有一定套路经验,基本考虑LOOKUP这个强大的查找函数!

拓展阅读(点击阅读):



本文由“壹伴编辑器”提供技术支持

常见问题02 | 简称找全称(相对匹配上)


=VLOOKUP("*"&C2&"*",A:A,1,)


简要说明:

1、这个使用大家最熟悉的VLOOKUP即可解决,这里使用的就是模糊匹配,但是不是近似匹配额,不要混淆

2、这里的星号(*),是通配符,表示任意0个或者多个字符!其中本质就是包含关键的意思了!

拓展阅读(点击阅读):




本文由“壹伴编辑器”提供技术支持
上面的数据有的相对来说,还算是规则的,有包含的关系,如果简称过于奇葩,没有连续对应的,可能就不行了,但是也不是无解!


常见问题03 | 相识度匹配



▼看上去有点小复杂,但是乱序好用的很
=INDIRECT("A"&RIGHT(MAX(MMULT(ISNUMBER(FIND(MID(C6,TRANSPOSE(ROW(INDIRECT("1:"&LEN(C6)))),1),$A$2:$A$6))*1,ROW(INDIRECT("1:"&LEN(C6)))^0)/1%%+ROW($A$2:$A$6)),3))



公式比较复杂,大部分同学选择放弃,直接使用是明智的,如果你是函数爱好者,可以听听下面的解析,虽然看完也不一定保证全部懂,但是我尽力哈!

公式解析:

1、=MID(C2,TRANSPOSE(ROW(INDIRECT("1:"&LEN(C11)))),1)

该部分是把我们关键词诸位拆开,为什么写这么复杂,而不是MID(C2,COLUMN(A1),1),右拉??因为我们要的是内存数组,方便我们下一步匹配!

ROW(INDIRECT("1:"&LEN(C11))) 可以根据关键的长度,自动拆分,不会多出空格,这点在这里分重要,不能使用一般ROW(1:99)直接代替!否则空值查出来会增加权重,影响结果!


2、FIND部分

查找关键词中每个字在全称中是否出现,出现1,未出现0

3、MMULT部分

MMULT矩阵相乘,就是把关键词的每个字在各个全称中出现的次数累加起来,比如这里的第15行,4个字都在其中出现,就是4,其他没有出现就是0

这个案例中,没有交叉包含的,否则可能出现关键词的部分字在其他全称中也出现,这种情况下,我们要的就是出现次数最多的!


4、出现次数最多的-MAX+权重

我们想要4对应的行号,其实就是出现关键词最多的全称的行高,那么我们可以把这个最大值,整体扩大10000(/1%%)倍,不影响他们本身的比较,然后加上行高!这样我们取出最大值的同时,也有了行号,在尾部!


5、使用RIGHT获取行号+INDIRECT获取单元格值



OK!关于相识度匹配我们就拆解到这里,这种算法是单字的,实际文本的相识度算法,是非常复杂的!

本文由“壹伴编辑器”提供技术支持


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
cell+多维引用+n(if(1,))+mmult置换2列数据
多维引用技术实例应用,题目虽难但知识点多多,值得收藏!
Excel公式练习34: 识别是否存在相同字母的单词
财务人员必懂得几个Excel函数(十)
身份证号码校验也可以利用excel函数公式完成
将字符串中的数字相加求和
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服