本文转载自公众号:Excel表哥之家,作者:大表哥。
Indirect属于Excel引用类的函数,语法如下:
Indirect(ref_text, [a1])
Indirect(单元格的引用, [引用类型])
对引用进行计算,并显示其内容;
可引用其他工作簿的名称、工作表名称和单元格引用;
Indirect是易失的,如果在太多公式中使用,会使工作簿变慢;
函数参数意义如下:
ref_text:单元格引用或代表引用的文本字符串
如果ref_text不是合法的单元格引用,返回错误值#REF!或#NAME?
如果ref_text是对另一个工作簿的引用(外部引用),则工作簿必须被打开,否则返回错误值#REF!
a1:逻辑值,指明包含在单元格ref_text中的引用类型
a1为True或省略,ref_text被解释为A1样式的引用
a1为False,ref_text被解释为R1C1样式的引用
主要用途:
返回由文本字符串指定的引用;
创建开始部分固定的区域引用;
创建多级级联下拉列表;
常规应用举例:
间接引用理解
Indirect属于间接引用函数,有两种形式:
=Indirect('A1')
加引号 - 文本引用,不进行二次计算,返回A1单元格的文本(B1)
=Indirect(A1)
不加引号 - 地址引用,进行二次计算,A1=B1,B1=66, 返回66
创建开始部分固定的区域引用
=SUM(INDIRECT('A2'):A8)
即使在A2单元格之前插入数据行,最终都是从A2单元格开始求和
工作表名称的引用
Indirect(“工作表名!单元格区域”)
Indirect(“明细!A2:A10”)
当工作表名称直接是数字的,在工作表名称两边必须添加上一对单引号。
举例:
在“2”工作表,计算“1”工作表B2:B11的单元格总和,公式为:
=SUM(Indirect(''1'!B2:B11'))。
Indirect(“’工作表名’!单元格区域”)
总结:如果工作表名为汉字,工作表名前后可以加上一对单引号,也可以不加。但是数字和有空格等特殊字符时,必须加单引号,否则不能得到正确结果。
工作簿引用
=Indirect('[工作簿名.xls]工作表表名!单元格地址')
如果是对另一个工作簿的引用(外部引用),则那个工作簿必须被打开,否则返回错误值 #REF!。
高级应用举例:
制作多级级联下拉菜单
制作原理:定义名称,然后在单元格输入与定义名称相同的字符,再对含有字符的单元格用Indirect进行间接引用。
【1】一级菜单设置
A2:A5数据验证设置:序列(=$D$1:$D$4)
【2】定义二级菜单引用名称:
定义3个二级菜单的名称:广东省、湖北省、湖南省
【3】设置二级级联下拉菜单设置
B2:B5数据验证设置:序列(=INDIRECT(A2))
联系客服