为什么有人使用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
答案 0 :(得分:0)
答案 1 :(得分:0)
Indirect
与Direct Cell Reference
does not generally auto update
与does update
添加或删除列的示例
arithmetic to change row or column
与what 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
您现在可以将INDIRECT
函数与许多其他Excel函数(例如SUM
,MIN
,MAX
等)组合在一起。在此示例中,使用INDIRECT
引用了G1中的下拉选择,以执行所选范围的计算。
动态下拉列表是您可以使用INDIRECT
函数的类似示例。在此示例中,有两个命名范围:
A2:A4
B2:B4
在D3
单元格中,有一个下拉菜单,您可以在其中选择“水果”或“蔬菜”。在E3
中,我们具有源=INDIRECT($D$3)
的动态下拉列表。如果您在D3
中选择“水果”,则会在下拉列表中找到一个带有水果的列表。
因此,在某些情况下,INDIRECT
可能是一个简单的解决方案。但是正如我所说,这是一个易失性函数,可锁定单元格引用。在大多数情况下,您可以找到其他更好的解决方案。人们使用它的主要原因可能是缺乏更好的替代品的知识。此外,我假设普通的Excel用户不知道使用INDIRECT
时可能遇到的问题。