乐于分享
好东西不私藏

excel中的模糊查询匹配:简称查全称&全称查简称

excel中的模糊查询匹配:简称查全称&全称查简称
HI,大家好,我是突袭者
在日常工作当中,我们经常遇到数据查询匹配问题,当然,模糊查询匹配也不少见。那么,什么是模糊查询呢?
所谓模糊查询:就是依据指定的内容,在另外的数据表格中找到与之相似匹配的内容。
举两个小栗子:
查找值为“华为”,数据源里面有华为技术有限公司”,查找值是数据源的完整的一部分,这个就是根据简称查找全称,江湖中称之为“正向模糊查找”。
再比如,查找值为华为技术有限公司”,数据源里面有华为”,数据源是查找值的完整的一部分,这个就是根据全称查找简称,江湖中称之为“反向模糊查找”。
不管正向还是反向,都离不开**是**完整的一部分,什么是完整的一部分,大概意思就是完整包含的意思,反正就是这个意思,摊手,骗你娶你,不论男女!

📌案例1--简称查全称:

下图中左侧是全称,要求根据右侧的简称把对应的全称找出来,红色的框框是最终结果。

这个题有多种方法,VLOOKUP函数解决:

=VLOOKUP("*"&F5&"*",$D$5:$D$9,1,0)

VLOOKUP函数支持使用通配符查询,本例中查找值为"*"&F5&"*",星号是通配符,可以代替零到多个字符。也就是查询包含F5单元格内容的。

比如查找”*华为*”,可以匹配包含「华为」的任意字符。很明显,D5单元格的”华为技术有限公司”符合条件,于是返回该值。

当然也可以用XLOOKUP:

=XLOOKUP("*"&F5&"*",$D$5:$D$9,$D$5:$D$9,,2)

XLOOKUP函数通过将第5参数设置为2是可以支持使用通配符的👆👆。

📌案例2--全称查简称:

下表依据右侧的全称将左侧的简称查询出来,比如,中国宝武钢铁集团有限公司对应简称就是宝武钢铁,毕竟宝武钢铁包含在全称的字符串里面嘛。

函数公式

=LOOKUP(,-FIND($D$5:$D$9,G5),$D$5:$D$9)

首先采用FIND函数查找$D$5:$D$9这一列简称在G5全称里面的位置信息,如果在全称里面,返回位置序号,不在里面,返回错误值。

-FIND($D$5:$D$9,G5)结果返回的是由负数、错误值构成的垂直内存数组。

LOOKUP函数第一参数省略了,省略了就默认为0(这是个书写习惯而已,当然不是个好习惯),用0在上述内存数组里查找,LOOKUP默认忽略错误值,查找小于0的最大值对应的$D$5:$D$9这一列简称的内容,自然就是我们要查找的简称。

当然有小伙伴说,用SEARCH函数也是可以的

=LOOKUP(,-SEARCH($D$5:$D$9,G5,1),$D$5:$D$9)

或变形的LOOKUP函数(其实这个公式才是最经典的套路)

=LOOKUP(1,0/FIND($D$5:$D$9,G5),$D$5:$D$9)