分享

使用Vlookup实现多表查找

 L罗乐 2016-10-17

前言

在日常工作中我们经常要整理多个部门的数据,为了方便录入。我们会特意将这些数据存放在不同的sheet页中。这样确实方便了数据录入,可以有时我们需要在这些数据中进行查找。有没有很好的方法来实现这个功能呢?今天勇哥将给大家介绍几种从sheet中查询到需要的数据。

【例】考核信息表中,每个部门一个表。




在查找表中,需要根据提供的姓名,从技术部~系统部中查找员工对应的考核成绩。



分析:

如果我们知道A1是技术部的,那么公式可以写为vlookup(A1,技术部!A:C,3,false)


如果我们知道A1可能在技术部或者开发部这两个表中,那么公式可以写为

iferror(vlookup(A1,技术部!A:C,3,false),vlookup(A1,开发部!A:C,3,false))


意思就是说,如果在技术部表中查不到(使用iferror函数判别是否能够查找到),则去开发部的表中查找。


如果我们知道A1可能在技术部、开发部、系统部这三张表中,那么公式可以修改为

iferror(A1,技术部!A:C,3,false),iferror(vlookup(A1,开发部!A:C,3,false),vlookup(A1,系统部!A:C,3,false)))


以此类推,有更多的表。如本例有5张表,那么就得一层层的嵌套下去。这就是勇哥想给大家介绍的第一个方法。大家可以结合前面的思路,写出最终的公式。可以在文档底部,把你的公式留言给勇哥哦。


聪明的你会发现,这样写公式实在是太麻烦了。需要嵌套好多的iferror,公式修改起来非常麻烦。


下面给大家介绍一个有一定难度系数的公式。


=VLOOKUP(A2,INDIRECT(LOOKUP(1,0/COUNTIF(INDIRECT({'技术部';'质量部';'开发部';'测试部';'系统部'}&'!A:A'),A2),{'技术部';'质量部';'开发部';'测试部';'系统部'}&'!A:C')),3,false)


只需要修改一下部分,就可以直接套用


A2:查找的内容

{''} : 大括号内是要查找的多个工作表名称,用分号分号隔开

A:A: 本例中员工姓名位于各表的A列,如果在B列则为B:B

A:C: 表示vlookup查找的区域

3:   表示是返回查找区域的第三列


分析思路

  1. 确定员工在哪个表中。这里使用countif函数可以多表统计来分别计算出各个表中员工存在的个数。

  2. 利用lookup(1,0/数组,数组) 构造出相应的工作表区域

  3. 利用indirect函数把字符串转换为单元格引用

  4. 利用vlookup进行查找


总结

本文介绍了如何使用vlookup从多个sheet页中查找到需要的数据信息,希望通过这个案例可以帮助大家更一步地了解vlookup的使用方法,更好地解决工作中的问题。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多