你手里有一个Excel工作簿,里面包含了从1月到5月的销售数据,每个月的数据都存储在一个单独的工作表上。如果让你将这些数据汇总到一个总表上,你会怎么做?

excel如何对多表数据进行汇总?借助VLOOKUP与INDIRECT函数可轻松解决!-趣帮office教程网

一、VLOOKUP函数的多表汇总一般的操作

首先,可能会想到用VLOOKUP函数来一个个查找,比如从1月开始:

=VLOOKUP(A2,'1月'!A:B,2,0)

excel如何对多表数据进行汇总?借助VLOOKUP与INDIRECT函数可轻松解决!-趣帮office教程网

excel如何对多表数据进行汇总?借助VLOOKUP与INDIRECT函数可轻松解决!-趣帮office教程网

但是啊,如果每个月都要这么写公式,然后手动把“1月”改成“2月”、“3月”...一直到“5月”,那岂不是很麻烦,还容易出错?

聪明的你们一定想到了,要是能有个办法让工作表名自动变化就好了,对吧?这里,我们就需要请出Indirect函数这个“小帮手”。

二、indirect函数的原理

Indirect函数具备两种参数处理方式:直接引用与间接引用。在直接引用模式下,函数直接根据指定的常量参数(带双引号的文本)进行内容引用。而在间接引用模式下,它会先看你指定的单元格里写了那个地址,然后再根据那个地址去找内容,indirect函数像个中转站。

excel如何对多表数据进行汇总?借助VLOOKUP与INDIRECT函数可轻松解决!-趣帮office教程网

三、vlookup与indirect函数的结合

那么,我们怎么利用Indirect函数来帮助我们实现多表汇总呢?

很简单,我们只需要在B1到F1这些格子里的“1月”到“5月”,然后用Indirect函数来“翻译”这些月份名变成所对应的工作表,告诉VLOOKUP函数去哪里找数据。例如:公式INDIRECT(B1)返回的是1月工作表,公式INDIRECT(C1)返回的是2月工作表,等等,INDIRECT(B1&"!A:B")是返回1月工作表中的A列跟B列区域。

  • INDIRECT(B1&"!A:B")公式等同于:'1月'!A:B;
  • 如果工作表的名字里有空格或特殊字符,记得给它们穿上“外套”,多加两个单引号:

INDIRECT("'"&B1&"'!A:B")

最终的公式为:

=VLOOKUP($A2,INDIRECT(B$1&"!A:B"),2,0)

注意哦,这里有个小技巧,我们用$符号锁定了行号或列号,这样拖动公式时就不会出错了。

excel如何对多表数据进行汇总?借助VLOOKUP与INDIRECT函数可轻松解决!-趣帮office教程网

这样,每次你们想要增加月份工作表进行汇总数据时,只需要在第一行上填上相应的月份,然后一拉公式,数据就自动汇总到总表上了,是不是很方便呢!