使用 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”是从哪里来的呢?
有什么解释吗?
答案1
您正在创建一个循环引用,因此默认返回是0
。
因此,当 B3 为 2 且指向自身时,它将变为 0,并停止计算以及所有依赖它的计算。这就是为什么下一个公式不会改变,直到您通过进入和退出编辑模式强制它改变。
0
当指向 A3 时您会继续获得,因为它是空的,并且空单元格等同于0
。