INDIRECT函数的作用是根据第一个参数的文本字符串返回字符串所代表的单元格引用。第一个参数可以是代表A1或R1C1引用时的字符串,也可以是已定义的名称或“表”的引用。默认采用A1引用样式,当第2个参数为0或FALSE时,则采用R1C1引用样式。
一、示例:在A1单元格总输入字符串“B1”,在B1单元格中输入字符串“Excel函数”,在其他单元格中输入下面三个公式:
=INDIRECT(A1) 公式一。其中,字母表示列号,数字表示行号
=INDIRECT("B1") 公式二
=INDIRECT("R1C2",0) 公式三。其中,R表示第几行,C表示第几列
这三个公式都将返回B1单元格的内容“Excel函数”。其中,第一个公式先将A1单元格的内容“B1”计算出来并作为INDIRECT函数的参数,实质与第二个公式相同。
二、正确书写格式:INDIRECT("[工作簿名.xlsx]工作表表名!单元格地址")
中括号里面为工作薄的名字,同工作薄引用可省略;
感叹号前面为工作表名字;
感叹号后面为引用的单元格地址。
三、跨工作表计算:如果相同格式的数据分别存放在不同的工作表中,则可以用INDIRECT函数实现动态引用。该函数可以用来实现动态引用单元格区域、名称区域、其他工作表区域,甚至其他工作簿区域。
示例:近五年的数据存放在三张工作表中,如何汇总整理出一份汇总表。
将各个“工作表名称”输入到A列的单元格,在B2单元格输入公式:=SUMIF(INDIRECT($A2&"!J:J"),B$1,INDIRECT($A2&"!C:C")),并将公式复制到其他单元格,则可以将相应工作表中对应年份的数据汇总求和,具体效果见以下截图。
当然,还可以用INDIRECT与VLOOKUP配合来实现跨多个工作表的查询匹配。
,