举个工作当中的例子,我们有一份员工及部门的归属清单,模拟的数据源如下所示:
多个员工对应了一个部门
1、提出需求现在我们的需求是,根据某一个员工的姓名,查找它所在的部门情况:

这就是通过简称, 查找匹配出全称对应的结果。
2、错误的解答有的小伙伴可能想到使用VLOOKUP公式的近似匹配来实现
=VLOOKUP(E2,A:B,2,TRUE)

但是这样得到的结果,肯定是错误的:
吕布这个员工,它匹配成了财务部,
大乔在左边的表格里面有数据的,它出现错误值#N/A

VLOOKUP公式的近似匹配功能,它不能用于文本的简称匹配全称
它只能用于数字的近似匹配。文本是不适用于
3、正确的解答关于这个问题,我们要需要借助Excel里面的通配符来解决
在Excel里面,*星号,表示任何多个字符
所以我们在查找数据源的时候,可以使用公式:
=VLOOKUP("*"&E2&"*",A:B,2,0)
它就能得到所有的结果了
我们在查找值,前面,后面都连接了一个通配符
那就是只要带这个字符的都能匹配出来了
4、拓展如果说左边的文本里面,出现2次我们的简称结果,上面的公式,它只能匹配到第一次出现的结果
例如,我们的小乔员工,同时出现在市场部,以及运营部
上述的公式,只能匹配到一个部门,那就是市场部

如果我们希望把所有匹配到的结果都显示出来的话
=ARRAYTOTEXT(FILTER(B:B,IFERROR(SEARCH(E2,A:A),0)))
首先是FILTER+SEARCH公式的经典组合,可以将A列里面包含E2的内容,对应的B列内容全部筛选出来
然后再使用ARRARYTOTEXT,将筛选出来的结果,用逗号连接起来
这样的话,如果是有多条简称对应的结果,也能匹配出来了

关于这个小技巧,你学会了么?动手试试吧!