如何正确引用 LibreOffice?

如何正确引用 LibreOffice?

我有一系列包含非常简单的公式的单元格(例如G2=G4-G5:),并且我希望无论我对工作表做什么,它都保持固定,特别是我希望它能够抵抗在第 4 行和第 5 行之间插入一行。

我尝试了所有美元符号的组合(例如G2=G4-$G$5:),但无济于事。

我究竟做错了什么?

解释一下上下文:我有以下内容:

G2=G4-G5
G4=C17
G5=<number>

在某个时刻我需要:

  • 在第 4 行和第 5 行之间插入一行
  • 复制价值目前在G4进入新(空)G5
  • 确保公式G2仍然指向G4-G5(当然,此操作后它必须立即为零)
  • 这对于几个(并非全部)列都适用。

解决这个问题后,我会尝试使这个过程自动化,但是现在我对G2=G4-G6插入行后的第一行感到困惑。

更新:我确实找到了一种方法来做到这一点,但它似乎有点过度:

G2=INDIRECT(ADDRESS(ROW()+2, COLUMN()), 1) - INDIRECT(ADDRESS(ROW()+3, COLUMN()), 1)

这真的有必要吗?

答案1

任何单元格地址都将调整为插入/删除的行,无论您将其注释为绝对引用还是相对引用。也就是说设计行为。您在原始问题编辑中提供的方法是绕过该过程的一种方法,但单元格地址不必由函数解析ADDRESS;它们可以像文本一样轻松地写入INDIRECT函数中。

G2的公式是:=INDIRECT("G4")-INDIRECT("G5")

另一个选项是将OFFSET数字硬编码为与参考点的偏移或错开量。这些硬编码的整数不会随着行/列的插入或删除而改变。

G2的公式是:=OFFSET($G$1, 3, 0)-OFFSET($G$1, 4, 0)

OFFSET和都INDIRECT被视为易挥发的函数。在此上下文中,易挥发的意味着公式将在工作簿经历的每个计算周期中重新计算,无论更改的值是否会影响公式的结果。易挥发的如果计算简单且涉及函数的公式数量有限,则类别在较小的工作表甚至较大的工作表中几乎没有区别。但是,如果大型工作表上有足够多的公式和依赖公式,那么计算滞后在某些时候会变得令人讨厌。这是一个非易失性解决方案。

G2的公式是:=INDEX(G:G, 4)-INDEX(G:G, 5)

同样,行标识符也是硬编码的,其方式与交错方式大致相同,OFFSETINDEX不是一个易变的公式。

相关内容