我只是在玩游戏,但这凸显了 Excel 中一个我不知道的潜在问题。我以为绝对单元格引用 ($C$4) 意味着引用永远不会改变,但我发现它在我不想改变的时候发生了变化。
我有几个单元格的数据,每列底部都有一个自动求和功能,并且带有绝对单元格引用。我想更改上面的数据并自动更新总数。我使用插入(Ctrl+)将数据移到右侧,单元格引用发生了变化。为什么?我没有更改或移动总数,只是数据。通过一些测试,只有当我一次性移动所有引用的单元格时才会发生这种情况。这是问题所在吗?如果我只移动一两行,就不会发生这种情况,如果我移动两行然后再移动另外两行(即分两步移动所有行),也不会发生这种情况。此外,如果我扩展总数以包括上面/下面的空白行并仅在其间移动数据,也不会发生这种情况。
我找到了一些解决方法,但仍然需要了解为什么绝对单元格引用并不总是绝对单元格引用。
图片中,带有黄色突出显示的单元格是应该更新的自动求和,这些列两侧的额外数据是副本,这样我就可以向左或向右移动数据来排列选项,而无需重新输入每个数字。
答案1
绝对引用不会保护引用免受源单元格或结果单元格被移动的影响。事实上,除非只移动了范围的一部分而不是整个范围,否则绝对引用不会保护引用免受移动的影响。
绝对引用的作用是保护放置在其他地方的公式。(放置在并非最初写入位置的单元格中,例如,在单元格 A1 中写入公式,然后将其复制到单元格 A2 到 A40000 中,或者有效地执行此类操作,例如在命名范围内使用非绝对引用,然后在创建命名范围时(通常是粗心地)选择的单元格之外的其他单元格中引用该公式。)
为了在您引用的情况下保护您的参考资料(抱歉,我喜欢双关语和任何类似的东西,所以......),您可以采取REALLY absolute
引用方法:
=SUM(INDIRECT("A1:A4"))
由于范围引用(“A1:A4”)是文本字符串,Excel 不会尝试更改它以进行任何列或行插入,也不会将单元格复制到其他单元格,也不会对单元格或引用的范围进行拖放移动。对于您的目的而言,这确实是绝对的。
我还要说的是,编写“INDIRECT(“A1:A4”) 并不比编写“A1:A4”更难,停止,突出显示足够多的内容,按 F4,然后继续,尤其是 Excel 对编辑公式所做的更改意味着您通常必须伸手去拿鼠标来突出显示,否则箭头键移动将完成您的编辑,通常是在一个尴尬的时刻产生“有问题......”的沮丧之路,所以我听到的关于它如此难以使用的抱怨INDIRECT()
是毫无根据的!
但请注意,在编写公式时执行此操作会掩盖 Excel 在按下时通常(且值得)的错误检查的范围,Enter
因此我建议在编写公式时编写裸范围,按下Enter
以查看 Excel 是否接受它,然后编辑您需要真正绝对的引用。这实际上也使它变得非常容易,因为您可以编写第一个的编辑,然后复制开头INDIRECT("
,对于任何其他的,只需将其粘贴在范围之前并")
在每个范围之后键入即可。所以
=SUM(A1:A4) + SUM(B1:B4)
就像这样:
=SUM(INDIRECT("A1:A4")) + SUM(B1:B4) (first one typed fully)
=SUM(INDIRECT("A1:A4")) + SUM(INDIRECT("B1:B4) {pasting first half of each edit ( INDIRECT(" }
=SUM(INDIRECT("A1:A4") + SUM(INDIRECT("B1:B4)") {typing the last half of each edit ( ") }