excel学习库

excel表格_excel函数公式大全_execl从入门到精通

Excel如何简称找全称?

最近,不止一个老铁后台问我,如何实现简称匹配全称的问题,其实也就是普遍的模糊匹配问题!今天就系统讲一下! 常见问题01 | 全称找简称 =LOOKUP(1,0/FIND($D$2:$D$6,A2),$D$2:$D$6)思路说明: 1、全称找简称的思路,其实也是把全部简称都在当前查找的全称中查找一遍,这个查找常用FIND函数处理,FIND(查什么,在哪里查) 2、FIND的结果,如果找到返回对应简称在全称中的位置,否则返回错误值 这种情况下,需要你有一定套路经验,基本考虑LOOKUP这个强大的查找函数! 拓展阅读(点击阅读): FIND和SEARCH有什么区别?当MID遇上FIND会发生什么有趣的故事!函数 | 入门VLOOKUP,进阶用LOOKUP!LOOKUP常用套路-原理总结 本文由“壹伴编辑器”提供技术支持 常见问题02 | 简称找全称(相对匹配上) =VLOOKUP("*"&C2&"*",A:A,1,)简要说明: 1、这个使用大家最熟悉的VLOOKUP即可解决,这里使用的就是模糊匹配,但是不是近似匹配额,不要混淆 2、这里的星号(*),是通配符,表示任意0个或者多个字符!其中本质就是包含关键的意思了! 拓展阅读(点击阅读): 精通VLOOKUP函数吗?VLOOKUP1对多查找教程0基础之VLOOKUP入门教程VLOOKUP反向查询原理详解列数太多,不想输,VLOOKUP实战技巧! 本文由“壹伴编辑器”提供技术支持 上面的数据有的相对来说,还算是规则的,有包含的关系,如果简称过于奇葩,没有连续对应的,可能就不行了,但是也不是无解! 常见问题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,未出现03、MMULT部分 MMULT矩阵相乘,就是把关键词的每个字在各个全称中出现的次数累加起来,比如这里的第15行,4个字都在其中出现,就是4,其他没有出现就是0 这个案例中,没有交叉包含的,否则可能出现关键词的部分字在其他全称中也出现,这种情况下,我们要的就是出现次数最多的!4、出现次数最多的-MAX+权重 我们想要4对应的行号,其实就是出现关键词最多的全称的行高,那么我们可以把这个最大值,整体扩大10000(/1%%)倍,不影响他们本身的比较,然后加上行高!这样我们取出最大值的同时,也有了行号,在尾部!5、使用RIGHT获取行号+INDIRECT获取单元格值 OK!关于相识度匹配我们就拆解到这里,这种算法是单字的,实际文本的相识度算法,是非常复杂的!

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接