为什么在Excel中使用INDIRECT代替直接引用

时间:2019-12-16 00:57:56

标签: excel

为什么有人使用INDIRECT(cell)而不是直接引用cell

例如,我看到一张纸上有很多参考书

     A    B     C
1 SHEET1  B1  =INDIRECT("'"&A1&"'!"&B1)
2 SHEET1  B2  =INDIRECT("'"&A2&"'!"&B2)
3 SHEET1  B3  =INDIRECT("'"&A3&"'!"&B3)

为什么不只是

     A    B     C
1             =SHEET1$B1
2             =SHEET1$B2
3             =SHEET1$B3

3 个答案:

答案 0 :(得分:0)

用例-以编程方式列出和循环一系列工作表: 工作表中使用的公式和值可用于按比例寻址单元格。 enter image description here

答案 1 :(得分:0)

IndirectDirect Cell Reference

does not generally auto updatedoes update

添加或删除列的示例

arithmetic to change row or columnwhat you type is what you get

示例间接(“ A”&3 + 5)与= A3 + 5完全不同

如果您要组织公式引用并即时更改它们,则使用间接方法会更容易(尽管使用命名功能甚至更容易),但是“需要”间接作用的真正原因是您还将如何进行更改您的公式中的参考没有手动输入(答案:间接)?

答案 2 :(得分:0)

建立对遵循逻辑的许多不同单元,工作表或工作簿的引用

INDIRECT函数的最常见用法可能是当某人想要引用许多单元格遵循逻辑规则的单元格时。例如,假设您有一个包含数百个工作表的Excel工作簿,每天工作表一个,工作表名称为日期。现在,您想在概述表中总结这些表中的一些值。在这种情况下,您可以输入开始日期,然后将其向下拖动到最终日期(Excel将增加日期)。使用INDIRECT函数,您现在可以在几秒钟内轻松建立引用。

但是,请注意INDIRECT是一种 volatile 函数,它将降低您的工作簿速度。此外,如果您插入行/列,则INDIRECT函数将无法适应。当您参考外部图纸时,情况甚至更糟。 由于INDIRECT会随着工作簿中的每次更改更新其价值,因此,一旦关闭参考表,您将收到#REF错误。 在这种情况下,我个人避免使用INDIRECT(通过使用VBA或为工作簿选择其他设计,因此不需要INDIRECT功能)

锁定单元格引用

如果您有一个像=A10这样的单元格引用,则当您插入新行或新列时,Excel总是会调整引用(例如,如果您在行10上方插入一行,则引用会更改到=A11)。您可以使用INDIRECT函数来始终保留绝对单元格引用:=INDIRECT(“A10”)

具有命名范围

INDIRECT可以很方便地使用命名引用。看一下具有三个命名范围的示例:

  • 北美:B2:B5

  • 欧洲:C2:C5

  • 亚洲:D2:D5

Using the INDIRECT function in Excel with named ranges

您现在可以将INDIRECT函数与许多其他Excel函数(例如SUMMINMAX等)组合在一起。在此示例中,使用INDIRECT引用了G1中的下拉选择,以执行所选范围的计算。

动态下拉列表

动态下拉列表是您可以使用INDIRECT函数的类似示例。在此示例中,有两个命名范围:

  • 水果:A2:A4
  • 蔬菜:B2:B4

Building dynamic drop downs in Excel using the INDIRECT function

D3单元格中,有一个下拉菜单,您可以在其中选择“水果”或“蔬菜”。在E3中,我们具有源=INDIRECT($D$3)的动态下拉列表。如果您在D3中选择“水果”,则会在下拉列表中找到一个带有水果的列表。

因此,在某些情况下,INDIRECT可能是一个简单的解决方案。但是正如我所说,这是一个易失性函数,可锁定单元格引用。在大多数情况下,您可以找到其他更好的解决方案。人们使用它的主要原因可能是缺乏更好的替代品的知识。此外,我假设普通的Excel用户不知道使用INDIRECT时可能遇到的问题。