最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

解读INDIRECT函数

来源:动视网 责编:小OO 时间:2025-09-25 13:10:23
文档

解读INDIRECT函数

解读INDIRECT函数【帮助文件】解读返回由文本字符串指定的引用。此函数立即对引用进行计算,并显示其内容。当需要更改公式中单元格的引用,而不更改公式本身,请使用函数INDIRECT。前半句还好理解,后半句有点儿拗口了,其实大可不必在此深究这一句话的意思。个人觉得下面其他内容更重要。语法INDIRECT(ref_text,a1)Ref_text  为对单元格的引用,此单元格可以包含A1-样式的引用、R1C1-样式的引用、定义为引用的名称或对文本字符串单元格的引用。如果ref_text不是合法的
推荐度:
导读解读INDIRECT函数【帮助文件】解读返回由文本字符串指定的引用。此函数立即对引用进行计算,并显示其内容。当需要更改公式中单元格的引用,而不更改公式本身,请使用函数INDIRECT。前半句还好理解,后半句有点儿拗口了,其实大可不必在此深究这一句话的意思。个人觉得下面其他内容更重要。语法INDIRECT(ref_text,a1)Ref_text  为对单元格的引用,此单元格可以包含A1-样式的引用、R1C1-样式的引用、定义为引用的名称或对文本字符串单元格的引用。如果ref_text不是合法的
解读INDIRECT函数

【帮助文件】解读 

返回由文本字符串指定的引用。此函数立即对引用进行计算,并显示其内容。当需要更改公式中单元格的引用,而不更改公式本身,请使用函数 INDIRECT。

前半句还好理解,后半句有点儿拗口了,其实大可不必在此深究这一句话的意思。个人觉得下面其他内容更重要。 

语法

INDIRECT(ref_text,a1)

Ref_text   为对单元格的引用,此单元格可以包含 A1-样式的引用、R1C1-样式的引用、定义为引用的名称或对文本字符串单元格的引用。如果 ref_text 不是合法的单元格的引用,函数 INDIRECT 返回错误值 #REF!。

∙如果 ref_text 是对另一个工作簿的引用(外部引用),则那个工作簿必须被打开。如果源工作簿没有打开,函数 INDIRECT 返回错误值 #REF!。 

∙如果 ref_text 引用的单元格区域超出行 1,048,576 或列 16,384 (XFD),则 INDIRECT 返回 #REF! 错误。 注释    此行为不同于 Microsoft Office Excel 2007 之前的 Excel 版本,早期的版本会忽略超出的并返回一个值。

A1   为一逻辑值,指明包含在单元格 ref_text 中的引用的类型。

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

∙如果 a1 为 FALSE,ref_text 被解释为 R1C1-样式的引用。

∙第1参数要求

【示例文件】

通读完毕,其实看来INDIRECT很简单,就两个参数,一个是代表引用的字符串,一个是选择引用样式。

首先,我们选择熟悉的A1引用样式来解读,即默认使用一个参数或者第2参数为TRUE或非0数值: 

Ref_text   为对单元格的引用,此单元格可以包含 A1-样式的引用、R1C1-样式的引用、定义为引用的名称或对文本字符串单元格的引用。如果 ref_text 不是合法的单元格的引用,函数 INDIRECT 返回错误值 #REF!。

Ref在函数参数中一般指单元格引用;text则一般指字符串。这句话中,最重要的是告诉了我们INDIRECT的第一参数尽管可以变化多端,但最终必须是单元格引用。

如图:A1单元格输入"B2",B2单元格输入"C3",C3单元格输入"你找到这里了吗?"

下载 (31.75 KB)

2009-4-9 01:25

【用法1】第1参数直接就是表示某单元格区域的字符串,比如:

示例1:=INDIRECT("A1")——返回对A1单元格的引用,得到"B2"

示例2:=INDIRECT("A1:C2")——返回对A1:C2单元格区域的引用。

【用法2】第1参数是引用,间接指向某单元格区域,比如:

=INDIRECT(A1)

因为A1单元格值"B2",那么这个公式就是=INDIRECT("B2"),最终返回的是对B2单元格引用,得到"C3";

再绕远点

=INDIRECT(INDIRECT(A1))

那么这个公式第1步变为:=INDIRECT(INDIRECT("B2"));第2步变为=INDIRECT("C3"),因而最终返回对C3单元格的引用,得到"你找的这里了吗?"

【用法3】第1参数是定义的名称,注意,必须是引用单元格或者可以表示单元格引用的字符的名称,比如:

按CTRL+F3,定义名称X="A1"

=INDIRECT(X)——返回对A1单元格的引用;

在B1输入"X",然后用=INDIRECT(B1)得到#REF!错误,或者=INDIRECT("X")也同样是错误,这是因为"X"是一个单纯的字符,不是合法的单元格引用,而INDIRECT(X)中的X是一个名称,它的值是字符"A1",而"A1"是可以转换为合法单元格引用的文本。

定义名称Y=OFFSET($A$1,,,3,3)

则=INDIRECT(Y)  得到{"C3",#REF!,#REF!;#REF!,"你找到这里了吗?",#REF!;#REF!,#REF!,#REF!},即把名称Y中对A1:C3的值分别代入,再逐一返回其对应的引用。不是合法单元格引用就返回错误。

通过上面3中用法,基本可以理解INDIRECT函数对第1参数的要求。
2楼通过对INDIRECT函数第1参数的示例讲解了简单的单元格引用。对与R1C1引用样式,INDIRECT函数的第2参数应使用FALSE或0或简写为逗号,比如=INDIRECT("Sheet1!RC",FALSE)、=INDIRECT("Sheet1!RC",0)、=INDIRECT("Sheet1!RC",)——都可以引用Sheet1表的相同位置(比如公式在C2,就引用Sheet1表的C2单元格)

在此基础上,继续拓展,讲解一下这个函数的几个典型应用:

一、跨工作表、簿引用

=INDIRECT("Sheet1!A1")——引用Sheet1表的A1单元格。

工作表名是变量,利用文本合并符:

=INDIRECT(A1&"!A1"),然后在A1单元格中输入工作表名称,比如"Sheet1"

同理,可以跨工作簿引用,比如=INDIRECT("[BOOK1.XLS]SHEET1!A1")等。

注意:完整的写法应该是在工作表名称前后加单引号,比如:=INDIRECT("'Sheet1'!A1")——尤其是工作表名称命名含有空格等字符的情况。

【应用】数据有效性、条件格式跨表引用,报表设计中本期进度及累计进度值计算等(见1楼附件)。

二、防止删除单元格产生错误

1、数组公式中常用的SMALL(IF(条件,row($1:$10),……假设删除第1行,则公式中的row变为Row($1:$9)

2、公式=A1,当A1单元格被删除时,返回#REF!错误。

这两中情况用INDIRECT都可以避免,比如ROW(INDIRECT("1:10")),INDIRECT("A1"),因为"1:10"是一个文本,不会随引用改变而发生改变(可能这就是帮助文件中那句拗口的话想表达的意思吧)

三、多行多列求取不重复值(见1楼附件)

=INDIRECT(TEXT(MIN(IF(COUNTIF(D$1:D1,A$1:B$4)=0,ROW($1:$4)*10^3+COLUMN(A:B),65536256)),"R0C000"),FALSE)&""

将满足条件的行、列号转换为一个和值,并用text转为R1C1引用样式,再用INDIRECT返回引用。

文档

解读INDIRECT函数

解读INDIRECT函数【帮助文件】解读返回由文本字符串指定的引用。此函数立即对引用进行计算,并显示其内容。当需要更改公式中单元格的引用,而不更改公式本身,请使用函数INDIRECT。前半句还好理解,后半句有点儿拗口了,其实大可不必在此深究这一句话的意思。个人觉得下面其他内容更重要。语法INDIRECT(ref_text,a1)Ref_text  为对单元格的引用,此单元格可以包含A1-样式的引用、R1C1-样式的引用、定义为引用的名称或对文本字符串单元格的引用。如果ref_text不是合法的
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top