分享

Excel函数学习14:INDIRECT函数

 L罗乐 2017-06-06

本文来源于www.contextures.com,由完美Excel翻译,稍有补充和修改,特辑录于此,分享与大家共同学习。

微信公众账号:excelperfect


INDIRECT函数返回由文本字符串指定的引用。


什么情况下使用INDIRECT函数?

INDIRECT函数返回由文本字符串指定的引用,可以用于:

  • 创建开始部分固定的引用

  • 创建对静态命名区域的引用

  • 从工作表、行、列信息创建引用

  • 创建固定的数值组


INDIRECT函数语法

INDIRECT函数的语法如下:

  • INDIRECT(ref_text,a1)

    • ref_text是代表引用的文本字符串

    • 如果a1TRUE或者忽略,使用A1引用样式;如果为FALSE,使用R1C1引用样式


INDIRECT陷阱

  • INDIRECT函数是易失的,因此如果在许多公式中使用,那么它会使工作簿变慢。

  • 如果INDIRECT函数创建对另一个工作簿的引用,那么该工作簿必须打开,否则公式的结果为#REF!错误。

  • 如果INDIRECT函数创建所限制的行和列之外的区域的引用,那么公式将出现#REF!错误。(Excel 2007Excel 2010)

  • INDIRECT函数不能对动态命名区域进行引用。


示例1:创建开始部分固定的引用

在第一个示例中,列C和列E有相同的数字,使用SUM函数求得的和也是相同的。然而,所使用的公式稍微有点不同。在单元格C8中,公式为:

=SUM(C2:C7)

在单元格E8中,INDIRECT函数创建对开始单元格E2的引用:

=SUM(INDIRECT('E2'):E7)


如果在列表的顶部插入一行,例如输入January的数量,列C中的和不会改变,但公式发生了变化,根据被插入的行进行了调整:

=SUM(C3:C8)

然而,INDIRECT函数锁定开始单元格为E2,因此在E列的汇总单元格中会自动包括January的数量。结尾单元格改变了,但是开始单元格没有受影响。

=SUM(INDIRECT('E2'):E8)


示例2:创建对静态命名区域的引用

INDIRECT函数也可以创建对命名区域的引用。在本例中,蓝色单元格区域被命名为NumList,在列B中也有一个基于该列的数值数的动态区域。

通过在SUM函数中使用区域名称,每个单元格都能够计算总和,正如在单元格E3E4中所看到的。

=SUM(NumList) =SUM(NumListDyn)


代替在SUM公式中输入名称,可以指向工作表单元格区域名称。例如,使用在单元格D7中显示的名称NumList,单元格E7中的公式是:

=SUM(INDIRECT(D7))

不巧的是,INDIRECT函数不能够解决对动态区域的引用,因此当公式向下复制到单元格E8中时,结果显示#REF!错误。


示例3:从工作表、行、列信息创建引用

INDIRECT函数中使用FALSE作为第二个参数容易创建基于行号和列号的引用。在本例中,创建R1C1样式的引用,还包括了工作表名 — ‘MyLinks’!R2C2

=INDIRECT('’'& B3 & '’!R' & C3 & 'C' & D3,FALSE)


示例4:创建固定的数值组

在一些公式中,需要一组数值,正如本例所示,我们想求列B中最大的3个数值的平均值。在公式中,可以输入数值,如单元格D4中所示:

=AVERAGE(LARGE(B1:B8,{1,2,3}))

如果需要更多的一组数值,那么可能不想输入这些数值。此时,可以使用ROW函数,如在单元格D5中使用的数组公式:

=AVERAGE(LARGE(B1:B8,ROW(1:3)))

还可以将ROW函数和INDIRECT函数联合使用,也是数组公式:

=AVERAGE(LARGE(B1:B8,ROW(INDIRECT('1:3'))))

上述3个公式的结果相同。


然而,如果在工作表的顶部插入行,第二个公式返回不正确的结果,因为行数被调整了。现在,显示了第3、第4、第5个最大数值的平均值,而不是求最大的3个数值的平均值。

使用INDIRECT函数,第3个公式保持正确的行引用,并继续显示正确的结果。



 

如果您对本文介绍的内容有什么建议或好的示例,欢迎发送邮件给我:xhdsxfjy@163.com。

您也可以在本文下发表留言,留下您的足迹。

转载本文请联系我或者注明出处。

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多