咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

在实际的工作中,劳资人员通常会把每个月的工资表单独做表,然后再新建一个汇总表,这样就需要在汇总表手工的输入每个月的数据,即使是用引用的方式也会很麻烦。这个时候就是我们INDIRECT函数发挥作用的时候了。

初识INDIRECT函数

INDIRECT函数有两个参数:

Ref_Text:单元格引用的字符串,这个字符串所指向的单元格中存放有对另一单元格的引用(是不是很绕啊,不要紧,后面会讲到)。

A1:单元格的引用样式(可以不写,不写则为默认的“A1”即TRUE,如果是FALSE则引用方式为“R1C1”)。

这里要说明一下A1和R1C1:“A1”样式就是我们通常使用的单元格的表示方法,即A为列标,1位行号;“R1C1”样式是单元格的另外一种表示方法,即R1C1表示第一行第一列,其中,R表示行(ROW),C表示列(column)。

因为我们通常使用的都是A1方式,所以我们在使用这个函数的时候都会不写第二个参数。

间接引用

要弄明白这个函数,首先我们要明白什么是间接引用。话不多说,看图:

直接引用

上图中演示的是“直接引用”,就是说,我要在C1单元格引用A1单元格的值“1314”,那么我们只需要在C1单元格输入“=A1”就可以了。

那“间接引用”到底是怎样的呢?还是看图:

看到图中的引用方式没有,先说这个:=INDIRECT(A1),为什么这个公式的返回值是引用错误(#REF!)呢?

这是因为,INDIRECT计算过程是这样的:

第一步:引用A1单元格的值转换成字符串,=INDIRECT(A1)→=INDIRECT('1314')

第二步:把字符串“1314”转换的单元格地址,INDIRECT('1314')→=单元格地址1314。因为Excel里是没有“1314”这种单元格地址表达方式的,所以会返回一个引用错误的提示(#REF!)。

再说:=INDIRECT("A1"),在这个公式中,因为A1是带引号的,所以在这里A1是一个字符串,所以INDIRECT函数,直接将字符串“A1”转换成单元格地址A1,并返回A1单元格的值。

最后是第三个公式:=INDIRECT(A2),同样的道理,因为第一参数“A2”对应的单元格的值是字符串“A1”,再将字符串“A1”转换成单元格地址A1,所以返回的是单元格A1的值。

大家看明白没有呢?说简单点,就是INDIRECT函数的第一参数一定是字符串,如果不是字符串,INDIRECT函数也会将它转换成字符串再执行。

INDIRECT函数练习

A表

B表

INDIRECT引用练习表

上面有三张表,我现在需要在练习表的数值列用INDIRECT函数利用工作表列提供的表名和单元格列提供的单元格地址,引用A表和B表的数据。

上图中我在D2单元格输入的公式是:=INDIRECT(B3&"!"&C3),在这个函数中B3的值是字符串“A表”,C3的值是“A20”,那么 B3&"!"&C3 连起来就是字符串“A表!A20”。

在“A表!A20”这个字符串中,"A表!"表示的是表名,“A20”就是单元格地址,翻译过来就是“A表的A20单元格”。

INDIRECT再根据“A表!A20”这个字符串,引用并返回对用地址的值。

完成第一个公式后,我们只需要向下拖动就可以完成所有的单元格的公式填充。怎么样,这样是不是比一个一个的手工输入公式要快得多。

INDIRECT函数间接引用的规则:

当前工作表的单元格引用,可以直接输入单元格地址。

当前工作簿的其他工作表引用:工作表名称!单元格地址

当前工作簿的其他表名以数字开头的工作表的引用:'1月'!单元格地址,需要在表名上加单引号。

INDIRECT函数弄明白后,使用起来是不是很方便。不过别光记得方便,INDIRECT函数对表格的结构要求是很严的,如果两个表的结构不一致,就会导致引用错误。

所以我们在工作中,同一种类型的表格一定要保持统一的结构,而且表名一定要有规律,方便以后进行汇总分析。