跨多表进行数据汇总,INDIRECT函数你应该了解下

假设有一家制造工厂,它每天的生产报表是这样的,因目前有5条流水线,每条流水线的每工段的生产数据生成一个Excel工作表,像如下的:

如果我想统计每条流水线的每天生产数据怎么实现呢?

只要我们在汇总数据的B2单元格输入公式:

=SUM('1'!B:B)

然后在B3~B6依次输入公式:

=SUM('2'!B:B)

=SUM('3'!B:B)

=SUM('4'!B:B)

=SUM('5'!B:B)

=SUM('6'!B:B)

即求和完成

这种方法只适用于工作表格很少的情况,如果出现5个以上的工作表,这种做法就不合适了

下面给大家分享个万能的汇总数据方法,INDIRECT法

操作步骤:

1、首先我们需要在汇总数据的工作表内提取出需要汇总的所有工作表名,不知道方法的话,可以看我们之前的文章

批量建立提取工作表名称,并实现在各工作表内随意跳转

2、然后我们只需要在B2输入如下公式,然后下拉即可统计完成


=SUM(INDIRECT(A2&"!B:B"))

看是不是和上面计算的结果一致~~


我们看到计算的数据是根据工作表名称计算的,那能不能计算出每个sheet每个工段的数据汇总呢?再给大家分享下。

按人员名称跨表合并


情景一、不同sheet人员位置相同数据汇总


1、首先我们可以看到,每个工作表内的工段名是一样的,每个工段名所在的行数也是一样的,所以我们要先调整工作表的内容格式;


2、在B2单元格输入如下公式,然后向右向下填充即可


=INDIRECT(B$1&"!B"&ROW())

然后选择工作表1的数据和上面对比下,提取的数据是正确的

公式解释:

INDIRECT(B$1&"!B"&ROW()) 代表返回工作表1的B2单元格的内容


上面我们看到的每个工段人员的行数位置是一致的,如果位置出现不一致,那要怎么办?

情景二、不同sheet人员位置不相同数据汇总

此时我们需要更改B2的公式为:


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

当另一个工作表内的工段顺序和汇总表不一致的时候,仍然可以正确的汇总出来

公式解释:

INDIRECT函数返回不同工作表内的A:B列数据,然后使用Vlookup查找对应的数值

跨多表合并,主要靠的就是INDRECT函数的,其主要是实现间接引用,这个函数的用法大家可以学习下哦~~

?

如果觉得文章对你有帮助的话,希望大家帮忙点赞加分享哦~,谢谢

本文由彩虹Excel原创,欢迎关注,带你一起长知识!