分享

VLOOKUP函数查找工资,遇到重名的两种解决方案

 Excel不加班 2019-12-26

VLOOKUP是一个超级好用的函数,不过有点遗憾就是重名的时候,VLOOKUP函数查找会导致出错。这个问题学员提了好几次,以前都是大概提一下解决方案。今天,卢子详细说明。

源文件,复制链接到浏览器下载。

工资表,姓名中的卢子和Excel不加班两个人是重复出现的。

查询表,重名的情况下,只查找到姓名第一次出现的工资,另一个没法查找到。

解决方案1:根据姓名或者工号查找,普通人直接按姓名查找,重名的人用工号查找。

使用公式:

=IFERROR(VLOOKUP(A2,工资表!B:F,5,0),VLOOKUP(A2,工资表!A:F,6,0))

先借助VLOOKUP函数查找姓名,如果有对应值就返回工资,如果没有对应值再根据工号进行查找。

为什么这里要同时用姓名跟工号两个条件呢?

因为很多人都习惯用姓名,工号记不住,而重名的人没办法只能退而求其次用工号。

解决方案2:有的时候工资表没有工号,但有身份证或者手机号等可以区分人的信息,这时也可以调用。如重名的人根据姓名和身份证后6位进行查找工资,普通人直接根据姓名查找工资。

使用公式:

=IFERROR(LOOKUP(1,0/((A2=工资表!$B$2:$B$14)*(B2=RIGHT(工资表!$E$2:$E$14,6))),工资表!$F$2:$F$14),VLOOKUP(A2,工资表!B:F,5,0))

LOOKUP函数语法:

=LOOKUP(1,0/((查找值1=查找区域1)*(查找值2=查找区域2)),返回区域)

这里的1和0为固定的,暂时可以不用管,重点看红色字体部分,这部分是需要根据实际而变。

查找区域可以嵌套其他函数,比如RIGHT(工资表!$E$2:$E$14,6),就是提取身份证后6位。

整个公式的意思就是,先同时按姓名和后6位身份证进行查找,如果找不到就单独根据姓名查找。

最后,凡事莫强求,工作跟学习都一样。今天就不宣传VIP了,这事就告一段落,感谢你的支持。

推荐:同事半天搞定费用报销表,在我面前装逼,后来……

上篇:你知道 扶贫办 怎么用Excel计算家庭补贴和文化程度分析吗?


遇到重名这种情况,你是如何解决?

作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多