公式中的范围参考在一种情况下发生变化,但在另一种情况下不变

问题描述 投票:0回答:2

当我们将第三行移动到任何其他行时,

3
A3:A
中的
B$3:B
不会改变,但是当我们将任何其他行移动到第三行位置时,或者插入新行(插入在第 2 行下方或在第 4 行上方插入)?
而且参考 A3 在任何情况下都不会改变。
(我所说的移动是指this

示例:Google Sheet(随意使用)

如果我将第三行移动到任何其他行位置,公式保持不变
例如:我将第三行移动到第四行位置,我得到:

公式保持不变,
但现在如果我将任意行移动到第三行,
例如:如果我将第 4 行移动到第 3 行位置,如下所示:

我明白了:

公式发生变化,类似地,如果我说将另外 2 行移动到第 4 行甚至第 3 个位置,那么 A4:A & B$4:B 的范围将变为 A6:A & B$6:B。如果您发现 A3 在所有情况下都保持不变。

我知道我可以通过使用来保持范围恒定:

INDIRECT(ADDRESS(3,COLUMN(A3),4)&":"&ADDRESS(ROWS(A:A),COLUMN(A3),4))
但这不是我的问题,我的问题是:

为什么在第一种情况下范围没有改变,但在第二种情况下改变了到底发生了什么?即使这就是为什么单元格引用 A3 没有改变?

google-sheets reference google-sheets-formula range
2个回答
1
投票

我的想法是范围是从“上到下”考虑的。上层细胞分裂之间的分裂。在第 3 行的“上边框”和最后一行的“下边框”之间。我尝试了范围 A3:A7、B$3:B$7,如果该范围内的任何行移动到前第 7 行的下边框下方,也会发生同样的情况,将其移至第 6 行:

因此,当您拖动或创建超出限制的任何内容时,它会被视为超出范围。请参阅蓝色边框的插图:

我只是移动行,我没有重新绘制任何边框:


1
投票

建议

在使用所提供的条件测试测试表后,以下是我对公式中显示的行为的想法:

  1. 首先,关于向下移动一行:这实际上不会影响前两个公式的总体范围,因为它们是在总体范围内移动的(A3:A 和 B$3:B)。至于单元格 C2 上的值引用单元格 A3 上的值,它跟踪的是单元格引用本身,而不是它最初引用的单元格中包含的值。

    例如,向下移动第三行意味着 C2 现在正在跟踪单元格 A4,这基本上是相同的值。 (请参阅下面的示例输出,显示上述行为)

  1. 至于向上移动行,通常这也不会影响整体范围除非移动在范围的一行内。在您的示例中,公式引用范围 A3:A,该范围从第三行开始。除了第四行之外,向上移动其他行应该不是问题,其中通过向上移动它,它会覆盖范围的起点,正如您所看到的,它现在显示为 A4:A。这也适用于在范围起点上方插入新行,因为从技术上讲,该新行不包含在范围内,所以发生的情况是起点刚刚向下移动。

    通常,您只需将两行交换回去即可恢复此状态;或者,就像您所观察到的那样,继续向上移动下一个相邻行以“缩小”整体范围。

总之,行(或列)的移动会影响公式上的单元格引用,因为它跟踪引用的原始单元格,而不是该单元格中包含的值。因此,单元格 A3 上的值是否因移动而发生变化并不重要,如果“原始”A3 单元格向上或向下移动,那么它的引用也会随之移动,这就是公式跟踪的内容。

© www.soinside.com 2019 - 2024. All rights reserved.