引用一个单元格的位置被另一个单元格引用

Reference the location of a cell that is referenced by another cell

我发布这个问题是因为我自己寻找答案时遇到了麻烦。

基本上,我有一个单元格引用一个单元格,该单元格引用另一个包含一些数据的单元格。例如,A3=A2A2=A1 以及单元格 A1 包含文本 Hello。所以单元格 A2A3 也包含相同的文本。见下图:

但是假设我实际上希望单元格 A3 显示与 A2 指向的单元格位置相关的数据(记住 A3=A2)。我需要使用 OFFSET 函数来执行此操作,有人会认为 A3=OFFSET(A2, 0, 1) 可能有效 (click here to see how OFFSET works)。但是 OFFSET 不能单独工作。它会 return 来自单元格 A2 右侧的单元格的数据(如下所示),而不是意识到 A2 指向 A1 然后 return读取 A1 右侧的数据。

那么我们如何通过单元格 A2 间接获得单元格 A3=B1

我们需要使用函数组合,其中之一是INDIRECTclick here to see how INDIRECT works. So in order to use INDIRECT we need the text found in cell A2. The FORMULATEXT function (more info) 将在单元格 A3:

中像这样使用时从单元格 A2 中提取 =A1

A3=FORMULATEXT(A2),如下图:

现在我们只需要从文本中删除 =,这样我们就有了 INDIRECT 可以使用的实际文本引用。您可以使用 RIGHTMID 函数 (right, mid) in combination with the LEN function (length) 执行此操作。如果 sheet 中的行数从一位数变为两位数,则您需要 LEN,依此类推。您还需要再次传入 FORMULATEXT 函数,以便它可以计算文本 =A1 的长度。如果不这样做,它将计算 Hello 的长度。您还需要注意 LEN()-1 是您需要的正确长度,因为您从文本中丢弃了 =

例如:A3=RIGHT(FORMULATEXT(A2),LEN(FORMULATEXT(A2))-1) 给我们:

将它们放在一起,您可以 OFFSET A2A3 引用的单元格与 INDIRECT 像这样:

A3=OFFSET(INDIRECT(RIGHT(FORMULATEXT(A2),LEN(FORMULATEXT(A2))-1)),0,1)