在Excel实际使用场景中,我们常常需要在一个工作表中引用不同sheet,甚至不同工作表中的内容,来实现公式计算,而这个过程也往往需要耗费大家较多时间手动更改公式引用。
因此接下来小二就将给大家介绍一个Excel进阶引用函数INDIRECT,帮助大家快速提效!
举例:
1月各销售各产品的销售额明细如下,

当我们需要统计不同销售、不同产品的1月销售额时,我们可以利用SUMIFS函数轻松实现。

不熟悉SUMIFS函数使用方法的同学,可以点击必知必会!常用条件统计函数查看了解~
但当我们需要统计每个月的不同销售、不同产品的销售额时,且每个月销售额明细是单独的一个sheet时,如何快速实现公式统计呢?
可能大家会想到利用绝对引用&相对引用的技巧,将所需要的列固定起来,快速填充公式。

不熟悉绝对引用&相对引用技巧的同学,可以点击Excel基础技巧:绝对引用&相对引用查看了解~
可以看到,即使使用了绝对引用&相对引用技巧,我们仍旧需要手动更改每个月的统计公式,让公式引用不同的sheet。
这个过程需要耗费大量时间,而且还可能出现手动更改出错的情况。因此,我们可以利用引用函数——INDIRECT函数来解决这一问题。
函数介绍:
INDIRECT函数能够返回由文本字符串指定的引用,公式组成为=INDIRECT(单元格引用,[引用样式]),其中:
单元格引用:需要引用的单元格字符串,需要使用英文双引号括住字符串内容;
[引用样式]:指定引用样式,可省略,常以省略使用。
举个简单的例子,我们可以使用INDIRECT函数返回指定单元格C1中的内容,实现效果如下:

因为INDIRECT函数返回的是对C1单元格的引用,所以当C1单元格内容变化时,INDIRECT函数返回的内容也会随之变化。

使用详解:
了解完INDIRECT函数的基础用法,让我们回到最开始的例子,利用INDIRECT函数实现自动引用不同sheet,效果如下:

可以看到,利用INDIRECT函数+绝对&相对引用技巧,我们只需要写好最初的公式就可以轻松实现自动引用、快速填充。
接下来,小二将以C2单元格公式为例,进一步细拆函数公式,帮助大家掌握INDIRECT这一进阶函数。
不使用INDIRECT函数,C2单元格公式为:=SUMIFS('1月明细'!$C:$C,'1月明细'!$A:$A,$B2);
使用INDIRECT函数后,C2单元格公式为:=SUMIFS(INDIRECT("'"&C$1&"明细'!$C:$C"),INDIRECT("'"&C$1&"明细'!$A:$A"),$B2)


使用INDIRECT函数只是让公式引用指定的单元格内容,不影响SUMIFS函数的正常使用,因此这两种公式的内容是一一对应的,大家可以利用这一对应关系来理解INDIRECT函数的使用。
INDIRECT("'"&C$1&"明细'!$C:$C"):对应'1月明细'!$C:$C,其中
"'":即为字符串——',使用时需要用英文双引号将其括起来;
C$1:即为C1单元格内容——1月,以此实现引用不同的sheet;
"明细'!$C:$C":即为字符串——明细'!$C:$C,使用时需要用英文双引号将其括起来;
INDIRECT("'"&C$1&"明细'!$A:$A"):对应'1月明细'!$A:$A,其中
"'":即为字符串——',使用时需要用英文双引号将其括起来;
C$1:即为C1单元格内容——1月,以此实现引用不同的sheet;
"明细'!$A:$A":即为字符串——明细'!$A:$A,使用时需要用英文双引号将其括起来。
通过上述公式的对应详解,大家可以理解到INDIRECT函数的使用关键是将对应的字符串以英文双引号括起来、再以不同单元格内容指定引用不同的sheet。
进阶使用:
除了引用不同的sheet,INDIRECT函数还可以实现不同工作表内容的引用,但使用前提是需打开对应的工作表。

以上,即为INDIRECT函数的使用方法介绍。在实际使用中,利用好INDIRECT函数我们可以快速实现复杂公式的填充,大大提升工作效率。
欢迎关注公众号,了解更多关于Excel的二三事~
夜雨聆风