首页 > 其他 > 详细

08 VLOOKUP函数一对多查找

时间:2021-05-25 09:09:36      阅读:32      评论:0      收藏:0      [点我收藏+]

写在前面的关于公式的一个小细节:

有时候我们在单元格内输入公式后,显示的只是公式而不是结果有两种原因,

原因1:单元格格式不对,公式单元格格式必须为常规

原因2:单元格里公式前面没有输入“=”号

 

需求:根据部门名称,找出其对应的所有员工姓名

技术分享图片

 

 VLOOKUP函数智能找到收个匹配数据,当有四个“开发部”同时存在时,很自然地,它只能默认为匹配首个,也就是说只能返回“孙权”。

 

思路:可以看到,部门人数都不是唯一,我们可以给每个部门的成员一个唯一“编号”,比如财务部,3个人可以分别编成“财务部1”、“财务部2”、“财务部3”这样,这样每名员工就都会有一个唯一的“编号”,把这个唯一的“编号”作为查找值即可解决这个问题!

 

问题可以拆分成两步进行:

第一步,构造辅助列把部门变成唯一索引值

用COUNTIF函数构造辅助列,COUNTIF函数的功能是根据条件计数,=COUNTIF($B$1:B2,B2),可以看到对每个部门出现的次数进行了统计,得到了每个部门的编码

技术分享图片

 

 接下来,我们用“&”连接符把部门和编码组合起来,形成一个唯一的“编号”,完成改造,=B2&COUNTIF($B$1:B2,B2)

技术分享图片

 

 第二步,索引列构造,用VLOOKUP函数查找

查询表只有一个部门,如何给他加上编码呢?这里可以用ROW函数构造编码:

=ROW(1:1),表示第一行至第一行

技术分享图片

 

 接下来,同样用“&”连接符把部门和编码组合起来,=$J$2&ROW(1:1)

技术分享图片

 

 最后,使用VLOOKUP函数完成查询:

=VLOOKUP($J$2&ROW(1:1),$A$2:$C$16,3,0)

技术分享图片

 

 最后,要注意,由于每个部门人数不定,所以后面会出现错误值,我们可以用IFERROR函数来进行美化:

=IFERROR(VLOOKUP($J$2&ROW(1:1),$A$2:$C$16,3,0),"")

技术分享图片

 

08 VLOOKUP函数一对多查找

原文:https://www.cnblogs.com/yongzhao/p/14806619.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!