例如,现在我们要在总表中,汇总每位员工各个月份的工资情况

在excel中用vlookup引用多列数据(Excel中跨多表引用Vlookupindirect函数)(1)

但每个月的工资都分别存放在每一个工作表中,如1月的数据如下:

在excel中用vlookup引用多列数据(Excel中跨多表引用Vlookupindirect函数)(2)

2月的数据工资表如下所示:

在excel中用vlookup引用多列数据(Excel中跨多表引用Vlookupindirect函数)(3)

每个子表中员工的姓名排列顺序都是不一样的。

1月份中员工的顺序是吕布、小乔、大乔

而2月份中员工的顺序是大乔、吕布、小乔、程咬金,后面每个月份表格顺序都不一样。

=VLOOKUP(B$1,'1月'!$A:$C,3,0),向右填充

现在要快速的汇总总表的数据:

在excel中用vlookup引用多列数据(Excel中跨多表引用Vlookupindirect函数)(4)

用普通的方法,就是在B2中输入:

=VLOOKUP(B$1,'1月'!$A:$C,3,0),向右填充

然后B3,把公式里面的1月改成2月,....依次做10次,这种方法效率太低。今天教大家vlookup搭配indirect函数,一个公式搞定。

首先我们了解下Indirect函数的用法:

在excel中用vlookup引用多列数据(Excel中跨多表引用Vlookupindirect函数)(5)

D3的公式是:=INDIRECT(A2),A2没有加双引号,所以会对A2计算结果是B4,然后引用的是B4单元格的值,返回结果为3

E3的公式是:=INDIRECT("A2"),A2加了双引号,所以直接返回的是A2的值,返回的结果是B4

我们现在要做的是就是实现向下填充的时候,'1月'!$A:$C,会自动变成2月,3月....

用INDIRECT($A2&"!A:C")替换掉

所以整体的公式是:=VLOOKUP(C$1,INDIRECT($A2&"!A:C"),3,0),向下填充,向右填充,得到了所有的汇总结果。

在excel中用vlookup引用多列数据(Excel中跨多表引用Vlookupindirect函数)(6)

你学会了么?动手试试吧,私信回复素材获取源文件

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

欢迎关注,更多精彩内容持续更新中....

,