分享

EXCEL技巧精选 | 如何玩转vlookup文字“模糊”匹配

 职场王者 2021-02-20

本期正文共 1025 字,预计阅读时间 6 分钟

继昨日的不加班要赏月的话题后,牛闪君出于对自己工作的热爱!(你懂的~)还是在中秋假期期间关注着我们答疑的小社群,今天就有一个小伙伴提及vlookup函数的使用,个人感觉这是一个相当值得学习的小技巧,所以在休息日也给大家来分享一下。

这个vlookup函数的另外一种“模糊”的匹配。牛闪君现在就给大家系统总结一下解决此类问题的思路。  

问题

如何将B表格的数据自动合并至A表格?

解答

利用vlookup函数的“模糊”匹配。

操作方式

分析上图会发现A表的城市比B表的城市多“测试”两个字。解决思路想办法“提取”A表的城市名,(也就是排除“测试”两个字。)但小伙伴要求不能破坏表格结构,所以我们利用单元格拆分函数来搞定。 

公式如下:  

=VLOOKUP(LEFT(B4,2),$E$4:$F$6,2,0)  

这个公式的重点在left函数,把B列的城市提取从左的2个字符,例如“天津测试”提取出“天津”,正好与B表的天津完全匹配,所以利用vlookup的精确匹配搞定(既最后的参数为0)。  

这个问题“完美”的解决,但牛闪君需要大家举一反三一下,实际工作中可能碰到下面这样的情况。 

分析上图会发现城市名称的位数不一样,这个该如何处理呢?直接用用文本拆分函数就不行了,但发现“测试”两个字还是很有规律的2位数,所以用单元格全部位数减去2位数,就得到了城市名称的位数。看下面动图操作:

公式如下:  

=VLOOKUP(LEFT(B4,LEN(B4)-2),$E$4:$F$6,2,0)  

关键点在于len长度函数与left函数的搭配使用,获得从左取减去“测试”两字之后的位数,从而完美获取不同长度的城市名称。  

那如果是下面第三种情况呢?  

分析上图发现更麻烦了,测试也不是统一的了,但还是有规律,就是城市名称结尾都在一个“测”字前,所以我们如果能用函数找到测字所在位数减去1位,不就是从左向右的城市名称个数。  

所以公式设置如下动图:  

公式如下:  

=VLOOKUP(LEFT(B4,FIND("测",B4)-1),$E$4:$F$6,2,0)  

这个公式难点在与find函数,查找“测”字在单元格中的位数减去1,正好就是left函数从左向右的城市名称位数。  

总结

只要能善于发现单元格中的内容规律,总归有方法能够想到提取的方法,当然如果能“破坏”表的结构,利用辅助列的方法能让上面的公式更加能够理解。  

ps:该技巧Excel2010版本以上有效。

中秋活动明天最后一天咯…

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多