函数介绍

功能

返回由文本字符串指定的引用。此函数立即对引用进行计算,并显示其内容。

语法

INDIRECT(ref_text, [a1])

参数

Ref_text  必需。对单元格的引用。

a1 可选。一个逻辑值,用于指定包含在单元格 ref_text 中的引用的类型。

如果 a1为 TRUE或省略,ref_text被解释为 A1-样式的引用。

如果 a1为 FALSE,则将 ref_text解释为 R1C1样式的引用。

解释:

A1-样式,就是我们平时使用的行号用数字,列标用大写字母表示单元格的方式:

INDIRECT函数的妙用你知道几个?

R1C1样式,是行各列都使用数字的表示方式,我们一般不用。R代表ROW(行),C代表COLUMN(列),如果需要用这种方式表示单元格,需要自己设置:

INDIRECT函数的妙用你知道几个?

R1C1样式很少用。

INDIRECT应用举例引用单元格

1、公式:=INDIRECT(B2)

含义:返回B2单元格的引用。

B2单元格的值是A2,所以返回A2单元格的值“ Office”。

INDIRECT函数的妙用你知道几个?

2、公式:=INDIRECT(“B2”)

含义:返回B2的值。

INDIRECT函数的妙用你知道几个?

总结:

INDIRECT(单元格)与NDIRECT(“单元格”),虽然只是参数差了一对双引号,但结果截然不同:

前者,是引用的单元格的地址,该单元格内的地址指向谁,结果就返回谁。比如以上示例,是引用B2单元格内的A2地址指向的值“ Office”。

后者,是引用的单元格内的值。

引用名称

典型的应用是制作多级联动菜单,如下图:

INDIRECT函数的妙用你知道几个?

公式:=INDIRECT(I2)

详细介绍参考:

Excel036 多级联动菜单,规范数据输入

多工作表合并

如下图:

INDIRECT函数的妙用你知道几个?

公式:=INDIRECT(B$1&”!B”&ROW())

B$1:指B1单元格的值,此值刚好与工作表“1月”的名称相同。使用混合引用B$1,公式向下填充时,行号不变,永远是第一行的值;公式向右填充时,列标自动改变,改变为表“1月”“2月”“3月”……的名称;

“!B”&ROW():

!是表与单元格的分界标志,公式向下拖动到哪一行,ROW()都是当前行的行号。

与SUMPRODUCT配合使用

与SUMPRODUCT函数配合使用,可以实现汇总项顺序不一致的多工作表汇总。

如下图:

INDIRECT函数的妙用你知道几个?

=SUMPRODUCT(SUMIF(INDIRECT(ROW($1:$12)&”月!$B$2:$B$37″),汇总!B2,INDIRECT(ROW($1:$12)&”月!$c$2:$c$37″)))

详细解释请参考文章:

Excel SUM——求和项排序相同的多工作表数据汇总;SUMIF+INDIRECT——求和项排序不同的多工作表数据汇总

与VLOOKUP配合使用

与vlookup函数配合使用,可以实现一对多查找

如下图:

INDIRECT函数的妙用你知道几个?

公式:

=VLOOKUP($B$12&ROW(B1),IF({1,0},$B$2:$B$9&COUNTIF(INDIRECT(“b2:b”&ROW($2:$9)),$B$12),$C$2:$C$9),2,0)

详细解释请参考文章:

Excel069 VLOOKUP一对多查找:不连续相同内容对应的多个数据一次提取

INDIRECT函数对工作簿引用

对工作薄引用的正确写法是:

=INDIRECT(“[工作簿名.xls]工作表表名!单元格地址”)

INDIRECT函数对另一个工作簿的引用时,被引用胡工作簿必须被打开,如果没有打开,函数 INDIRECT 返回错误值 #REF!。

发表回复