indirect函数:返回文本字符串所指定的引用(跨表引用)
浏览人数:一、函数英语单词
indirect
英 [ˌɪndəˈrekt; ˌɪndaɪˈrekt] 美 [ˌɪndəˈrekt,ˌɪndaɪˈrekt]- adj. 间接的;迂回的;非直截了当的
二、函数含义和参数
indirect函数的分类属于:查找与引用函数打开excel表格,点击编辑栏前的插入函数图标fx,弹出插入函数窗口,在选择类别中选择分类:查找与引用函数,可看到该函数的官方解释:

查找与引用函数:indirect的含义和参数:
返回文本字符串所指定的引用
indirect(ref_text,a1)
跨表引用是,引用表需要处于打开状态。如果不打开,考虑使用offiset,或者index函数等
三、函数的使用方法及实例
案例一一个excel工作簿中我们经常会建立很多个工作表,而表名又是表述某个表的基本内容,如果有太多个工作表的时候,我们又很想关注到所有表中某一项值,或者是某一项内容。
如下:在一个类似于目录的工作表中,都想要展示出各分表的B1单元格内容,也就是未回数量。
接下来看一下gif动画演示(第一种,输入等于后,鼠标点各个分工作表,再点对应的B1单元格,最后回车)

上面是的gif动画,我们把最后一张定格的截图一下,如下:

细心的你是不是又能发现不同了呢?我们都是输入等号后,点了不同的分表,都是B1单元格,但出来的C4和C5单元格的格式有点不一样。如下:
C4单元格公式:
='4寸防炫眼球'!B1
c5单元格公式:
=半圆外球4寸!B1
区别是:4寸防炫眼球这个工作表,前后分另加了一个单引号,而半圆外球4寸工作表前后没有单引号。
原因是在excel中,以数字开头,以及工作表中含有空格等,就会在工作表名的前后分别加上单引号,而其他的,是不加的。这就是规则。
方法一是能实现我们要求的结果,在工作表数量有限的情况下,无非就是点几个表名的事情,但如果是100个表呢?或者说30个呢?工作效率太低。那我们来使用indirect函数。
gif动画演示效果:

E4单元格公式:
=IFERROR(INDIRECT(B4&"!b"&1),INDIRECT("'"&B4&"'!b"&1))
或者
=IFERROR(INDIRECT(B6&"!b1"),INDIRECT("'"&B6&"'!b1"))
要求:B列的名字必须和各分表的工作表名一致,演示当中,是双击各表标签后,Ctrl+C,再粘贴到目录表或者总表的B列中。
公式中的B1,表示的是各分表的B1单元格,也就是说,各分表要显示的内容都要统一致B1单元格,如果某个表不在B1单元格,可能就无法正确显示至总表或者目录表中。
解释:
=IFERROR(INDIRECT(B6&"!b1"),INDIRECT("'"&B6&"'!b1"))
公式中,红色部分和紫色部,有什么区别?
一个是没有加前后的单引号,一个加了前后单引号。
这个,是不是和最开始第一种方法的2种excel规格相对应上了。
公式使用方法:
复制此公式,把对应的B6改为总表或者目录表中,要录入的各分表的单元格位置。
把B1修改为各分表中对应要显示的单元格位置就可以了。
实例2:
A列包含了姓名和职务,通过indirect函数,可以对固定的间隔进行提取:

姓名b1单元格公式:
=INDIRECT("A"&ROW(A1)*2-1)
职务c1单元格公式:
=INDIRECT("A"&ROW(A1)*2)
制作表格zhizuobiaoge.com
Copyright@all rights reserved