分享

这才是vlookup函数最高级的应用:多表查找

 碧荷晨露 2015-04-13

关于vlookup的教程兰色已发过入门+初级+进阶+高级的。在网上也可以搜到很多关于vlookup的教程。但,这些教程中都缺了vlookup的一个关键应用:跨多表查找。今天兰色就补上这个内容。


【例】工资表模板中,每个部门一个表。


在查询表中,要求根据提供的姓名,从销售~综合5个工作表中查询该员工的基本工资。


分析:

如果,我们知道A1是销售部的,那么公式可以写为:

=VLOOKUP(A2,销售!A:G,7,0)


如果,我们知道A1可能在销售或财务表这2个表中,公式可以写为:

=IFERROR(VLOOKUP(A2,销售!A:G,7,0),VLOOKUP(A2,财务!A:G,7,0))

意思是,如果在销售表中查找不到(用iferror函数判断),则去财务表中再查找。


如果,我们知道A1可能在销售、财务或服务表中,公式可以再次改为:

=IFERROR(VLOOKUP(A2,销售!A:G,7,0),IFERROR(VLOOKUP(A2,财务!A:G,7,0),VLOOKUP(A2,!A:G,7,0)))

意思是从销售表开始查询,前面的查询不到就到后面的表中查找。


如果,有更多的表,如本例中5个表,那就一层层的套用下去。这也是我们今天提供的VLOOKUP多表查找

方法1:

=IFERROR(VLOOKUP(A2,服务!A:G,7,0),IFERROR(VLOOKUP(A2,人事!A:G,7,0),IFERROR(VLOOKUP(A2,综合!A:G,7,0),IFERROR(VLOOKUP(A2,财务!A:G,7,0),IFERROR(VLOOKUP(A2,销售!A:G,7,0),'无此人信息')))))


------------------------------------------

如果你想简化一下公式,以适合在更多的表中查谒,兰色再提供一个思路,只是公式简单了,理解起来却难了。这里你只需要学会怎么修改公式套用就可以了。


方法2:

=VLOOKUP(A2,INDIRECT(LOOKUP(1,0/COUNTIF(INDIRECT({'销售';'服务';'人事';'综合';'财务'}&'!a:a'),A2),{'销售';'服务';'人事';'综合';'财务'})&'!a:g'),7,0)


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

  • A2:查找的内容

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

  • a:a :本例是姓名在各个表中的A列,如果在B列则为b:b

  • a:g :vlookup查找的区域

  • 7:是vlookup第3个参数,相对应的列数。你懂的。

公式思路说明:

1、确定员工是在哪个表中。这里利用countif函数可以多表统计来分虽计算各个表中该员工存在的个数。


2、利用lookup(1,0/(数组),数组) 结构取得工作表的名称

3、利用indirec函数把字符串转换成单元格引用。

4、利用vlookup查找。


示例表格下载:(粘贴到电脑浏览器地址栏中按回车下载)

http://www./home/upload/2015_04/temp_15041319138821.zip


兰色说: vlookup函数的跨表查找,新手同学建议用iferror+vlookup的模式,公式虽然长,但容易理解且公式不容易出错。如果你有一定基础,倒可以试试第2种方法。另外,如果工作表有几十个或更多,就需要使用宏表函数get.workbook来获取所有工作表的名称,然后应用到公式中,具体的公式兰色就不再写了。


书也买了一大堆,没心思看。教程也下载了好多,越看越迷糊。excel到底该怎么学?其实,通过视频学习才是最好的学习途径,点左下角'阅读原文' 查看兰色幻想+小妖录制的超全的290集excel视频教程。

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多