在Excel众多函数当中,VLOOKUP函数估计是出镜率最高的了,但它似乎有局限性,这不,今天老板要在右边的查询表中找出部门的所有成员,VLOOKUP好像无能为力?
VLOOKUP重复值查找
这个问题,VLOOKUP其实也能轻松搞定,且听技巧君慢慢道来!
文末有示例文件获取方法哦!
VLOOKUP函数只能找到首个匹配数据
我们知道vlookup总会以第一个被找到数据作为最终的匹配数据,所以,当有四个”市场开发部“同时存在时,很自然的,它只能默认为匹配首个,也就是说只能返回”孙权“
VLOKKUP函数基础属性
这里需要注意,VLOOKUP函数只能返回首个匹配数据,这是不可改变的,所以我们可以从数据源入手,把每个部门变成唯一值!
改造数据源生成唯一“编号”是解决问题的基本思路
可以看到,部门人数都不是唯一,我们可以给每个部门的成员一个“编号”,比如财务中心,3个人分别编成“财务中心1”、“财务中心2”...,这样每名员工就都会有一个唯一的“编号”,把这个“编号”作为查找值即可解决这个问题!
那我们可以把这个问题拆成两步进行:
- 改造源数据,构造辅助列把部门变成唯一索引值
- 用VLOOKUP函数完成查找匹配
那么,如何去完成每个部门的编号呢?
用COUNTIF构造辅助列
COUNTIF函数的功能是根据条件计数,在这个问题中恰如其分,
我们用
COUNTIF($C$9:C10,C10)这样一个公式来对每个部门出现的次数进行统计,得到每个部门的成员编码
编号
接着,我们用“&”连接符把部门和编码组合起来,形成唯一索引,完成数据源的改造:
C10&COUNTIF($C$9:C10,C10)索引列构造
用VLOOKUP完成查询
索引列构造完毕,咱们就可以进行查询了,这里又有一个问题,查询表只有一个部门,如何给他加上编码呢?这里,咱们可以用ROW函数来构造编码:
ROW(1:1)ROW函数编码
接着,同样用“&”连接符把部门和编码组合起来:
$I$10&ROW(1:1)查询表编码
然后,使用VLOOKUP函数完成查询:
VLOOKUP($I$10&ROW(1:1),$B$9:$G$24,3,0)VLOOKUP完成查询
最后,注意到,由于每个部分人数不定,后面会出现错误值,我们可以用IFERROR函数来进行美化:
IFERROR(VLOOKUP($I$10&ROW(1:1),$B$9:$G$24,3,0),"")IFERROR美化
这样,使用VLOOKUP进行一对多的重复值查询就完成啦,你是否学会了呢?
本文示例文件获取方法:
点击右上角红色按钮 关注EXCEL精选技巧,然后私信发送【VLOOKUP重复值查找】即可获取
关注EXCEL精选技巧,每天学习3分钟,坚持一个月,你将大不同!