使用 Excel 2013 ...
我正在使用 INDIRECT 函数,发现了一个非常奇怪的结果序列。当我将 INDIRECT 函数放在一个单元格(例如 A2)中并请求该单元格(例如 =INDIRECT("A2"))时,就会发生这种情况。
所以如果我这样开始,将显示的公式输入 B2,我得到“0”。(第 1 行具有 FORMULATEXT 函数来显示第 2 行中的内容。C2 显示 INDIRECT 指向哪个单元格。)这不是我所期望的。
然后,如果我将 B3 中的值更改为 3,我将在 B2 中得到预期的结果:
如果我将 B3 改回 2,B2 中显示的值保持不变。这是我认为在第一步中会看到的值。
如果我在 B2 的公式栏中单击并按 Enter,0 会重新出现,我们又回到了原来的状态。
如果我手动将参数更改为 INDIRECT(从“A2”到“A3”并返回),我会得到相同的结果。
要求间接引用出现在 INDIRECT 中的单元格似乎是一种不好的做法,但这种行为对我来说看起来有点问题。B2只是产生一个文本字符串,那么原来的“0”是从哪里来的呢?
有什么解释吗?
您正在创建循环引用,因此默认返回值是
0
.因此,当 B3 为 2 并且它指向自身时,它变为 0 并停止计算和所有依赖于它的计算。这就是为什么下一个公式在您通过进入和退出编辑模式强制它之前不会改变的原因。
指向 A3 时您会继续得到
0
,因为它是空的并且空单元格等于0
.