indirect函数跨表汇总?indirect函数跨表取值
各位老铁们,大家好,今天由我来为大家分享indirect函数跨表汇总,以及indirect函数跨表取值的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
领导发来一个表格,跨多表进行汇总,indirect函数搞定
领导发来一个表格,每个工作子表记录了当前月份的工资发放明细数据,现在我们需要汇总每个月发放的总金额是多少
像这种跨表进行汇总计算,如果表格很少,那么手动的输入公式:
=SUM('1'!B:B)
然后重复的输入6次公式得到结果:
工作表少的时候,我们还可以这么折腾,如果单独的工作表很多的时候,我们就需要使用捷径了,使用Indirect函数,简单搞定!
因为每次都只是表名发现了变化,而我们的A列里面正好有对应的表名,
所以我们只需要把单元格数据替换掉我们公式里面的变化,
如果我们直接用单元格链接的话,是没有办法进行正常的计算的
我们需要加一个间接引用的函数,使用的公式:
=SUM(INDIRECT(A2&"!B:B"))
如果需要体现各个员工的数据汇总呢?
首先我们输入一个的公式是什么:
然后联想间接引用公式,我们使用的公式是:
=INDIRECT(B$1&"!B"&ROW())
上面公式适用于各个子表的格式都是对应的,如果格式不对就的情况下,如下计算就会出错
同样,如果是一个的公式是:
然后我们修改间接引用的区域,公式更改成:
=VLOOKUP($A2,INDIRECT(B$1&"!A:B"),2,0)
下次再碰到跨表汇表汇总的时候,Indirect函数用起来吧,你学会了么?
indirect跨表引用多个数据
INDIRECT函数跨表引用多个数据有以下几种方法:
基础动态行/列引用纵向引用:借助ROW()函数,依据当前行号动态引用目标表数据。例如公式=INDIRECT("Data!A"&ROW()),当向下填充公式时,它会自动引用Data表A列对应行的数据,像第2行就引用Data!A2,第3行引用Data!A3。
横向引用:结合COLUMN()和CHAR()函数实现列号递增。例如公式=INDIRECT("Results!"&CHAR(64+COLUMN())),向右填充时会依次引用Results表的A列、B列、C列等,因为CHAR(64+1)的结果是A,CHAR(64+2)的结果是B。
多表区域求和第一步,在某列(如E列)列出所有目标工作表名称,比如“Jan”“Feb”“Mar”。
第二步,使用SUMPRODUCT+SUM+INDIRECT组合公式=SUMPRODUCT(SUM(INDIRECT(E1:E3&"!C3:C10")))。
第三步,公式解析:E1:E3&"!C3:C10"会生成每个表的C3:C10区域引用,如“Jan!C3:C10”;SUM函数对单个表区域求和;SUMPRODUCT函数汇总多表的求和结果。
通过单元格存储表名实现动态引用:如果表名存储在单元格中,例如A1单元格的值为“Sheet2”,可直接引用该单元格构建公式,如=INDIRECT(A1&"!B"&ROW())。其中A1是表名,ROW()是当前行号,能动态引用目标表B列对应行的数据。当A1为“Sheet2”且当前行是3时,就会引用Sheet2!B3。此外,使用时要注意确保工作表名称无拼写错误,若名称含空格或特殊字符,需用单引号包裹,如INDIRECT("'Sheet Name'!A1");公式中引用的工作表名称区域(如E1:E3)需为有效表名,否则会返回#REF!错误。
Excel中跨多表引用,Vlookup+indirect函数!
例如,现在我们要在总表中,汇总每位员工各个月份的工资情况
但每个月的工资都分别存放在每一个工作表中,如1月的数据如下:
2月的数据工资表如下所示:
每个子表中员工的姓名排列顺序都是不一样的。
1月份中员工的顺序是吕布、小乔、大乔
而2月份中员工的顺序是大乔、吕布、小乔、程咬金,后面每个月份表格顺序都不一样。
=VLOOKUP(B$1,'1月'!$A:$C,3,0),向右填充
现在要快速的汇总总表的数据:
用普通的方法,就是在B2中输入:
=VLOOKUP(B$1,'1月'!$A:$C,3,0),向右填充
然后B3,把公式里面的1月改成2月,....依次做10次,这种方法效率太低。今天教大家vlookup搭配indirect函数,一个公式搞定。
首先我们了解下Indirect函数的用法:
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),向下填充,向右填充,得到了所有的汇总结果。
你学会了么?动手试试吧,私信回复素材获取源文件
好了,文章到此结束,希望可以帮助到大家。