2024年6月3日发(作者:)
INDIRECT函数的使用
Excel帮助中的语法:
INDIRECT(ref_text,引用方式)
其中
ref_text为对单元格的引用,可为文字串或返回字符串的表达式,可以包含 A1-样式的引用、R1C1-样式的引用、
定义为引用的名称或对文字串单元格的引用。如果 ref_text 不是合法的单元格的引用,函数 INDIRECT 返回错误值 #REF!。
引用方式 为一逻辑值,指明包含在单元格 ref_text 中的引用的类型。
如果引用方式为 TRUE 或省略,ref_text 被解释为 A1-样式的引用。
如果引用方式为 FALSE,也可以用0表示,ref_text 被解释为 R1C1-样式的引用。
特别注意:如果 ref_text 是对另一个工作簿的引用(外部引用),则那个工作簿必须被打开。
如果源工作簿没有打开,函数 INDIRECT 返回错误值 #REF!。
此函数返回的是ref_text文本串所指定的单元格区域引用。关键是ref_text表达式应返回一个字符串
A1样式引用:就是最普通的excel窗口中上方的“A、B、C、…”列标,右边的“1、2、3、…”行号所对应的单元格引用
如C4即指对第C列(第3列)第4行的单元格引用。
R1C1样式引用:就是在“工具》选项》常规”中设置了“R1C1引用样式”后,窗口上方的列标变为“1、2、3、…”后所指的引用。
如上面的A1样式的C4在R1C1样式中就变为R4C3,其中R4指第4行、C3指第3列。
提示:用INDIRECT函数时,用什么样式引用与“工具》选项”中对引用样式的设置无关(有限制的)。
也就是设置为A1样式引用,INDIRECT函数中照样可以用R1C1样式的引用,反之也行。
下面作一些详细的分析,供大家参考
A.对本表的一个单元格的引用
INDIRECT("E23")省略了引用样式,所以是A1样式引用,文字"E23"就表示对E23单元格的引用,
结果如下
G23=INDIRECT("E23")
R23C7
G2312345
INDIRECT(E23)同样是A1样式引用,但此处的参数E23并不是文本串而是指E23单元格中的文本"G23",所以返回对G23单元格的引用。
12345=INDIRECT(E23)
以上两式用R1C1样式可这样写
G23=INDIRECT("R23C5",0)12345=INDIRECT(E22,0)
上面右边的公式为什么用=INDIRECT(E22,0)?因为目前的设置是A1样式引用,E22必须用A1样式,而E22格中的文本用R1C1样式。
提示:看INDIRECT函数到底是对哪个单元格的引用?可选中INDIRECT函数的第一个参数,按F9键,看那个文本是指那个区域。
ref_text参数到底以什么样式写?如是直接的字符串,两种方式均可以,只要和第二个引用方式参数相一致;
如ref_text参数是一个字符串计算表达式,那么这个表达式中的单元格引用应与当前“选项”中的引用设置相一致,然后
再根据这个表达式的结果字符串来决定用相一致的第二个引用方式参数。
B.跨表的一个单元格的引用
只要在ref_text中加上工作表名即可,公式为INDIRECT(工作表名!单元格引用,引用方式)
300=INDIRECT("Sheet2!B4")
或
R1C1样式引用
300=INDIRECT("Sheet2!R4C2",0)
那么下面的公式怎么错了?
#REF!=INDIRECT("表 B!B4")#REF!=INDIRECT(J39)
300=INDIRECT(G36,0)
表 B!B4
300=INDIRECT(G35)
Sheet2!B4
Sheet2!R4C2
因为“表 B”中有空格,excel规定当表名有空格时必须用'号将表名括起来。
此问题与半榻茶烟版主讨论过,开始以为在INDIRECT函数中ref_text已是字符串,可不用'号,最后的结论还是要加'号。
400=INDIRECT("'表 B'!B4")400=INDIRECT(J43)'表 B'!B4
提示:不要忘了用'号将表名括起来,否则可能出了问题也找不到原因在哪儿,加了'号对所有的表名(不管是否有空格)均适用。
C.对一个单元格区域的引用
对“表 B”A1:B4区域的引用,用多单元格数组公式返回在一个单元格区域中。
姓名
王五
工资
500
{=INDIRECT("'表 B'!A1:B4")}
怎么输入多单元格数组公式


发布评论