2082 1

[数据挖掘工具] Excel技巧:如何玩转Vlookup的文字“模糊”匹配? [推广有奖]

  • 0关注
  • 66粉丝

教授

55%

还不是VIP/贵宾

-

威望
1
论坛币
13016 个
通用积分
68.7878
学术水平
26 点
热心指数
25 点
信用等级
15 点
经验
8650 点
帖子
615
精华
0
在线时间
170 小时
注册时间
2016-12-6
最后登录
2017-4-8

楼主
数据分析闯天下 在职认证  发表于 2016-12-11 19:36:45 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

Excel技巧:如何玩转Vlookup的文字“模糊”匹配?

昨天小伙伴提了这样一个问题:


这个问题非常典型,是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函数从左向右的城市名称位数。


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


该技巧Excel2010版本以上有效。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:EXCEL技巧 vlookup lookup Vlook EXCEL 使用excel做数据分析 excel使用技巧 excel如何模糊匹配 vlookup函数

沙发
phipe 发表于 2016-12-11 19:58:03
挺实用的,学习了,谢谢分享

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-17 15:04