使用一个单元格的引用来创建相对引用

Using the reference of one cell to create relative references

我的 P11 单元格引用了另一个单元格:

=J14

而且我想在多个其他单元格中引用 P11 单元格中的引用。例如:

=OFFSET(J14,0,-4)
=OFFSET(J14,0,1)
=OFFSET(J14,0,2)

除了 OFFSET 公式中的 "J14" 理想情况下会有一个引用来获取 P11 单元格的引用,因为我每次都需要更改该引用。因此获取 P11 单元格的引用会很有帮助,这样我只需要更改一个单元格而不是 4 个单元格的引用。

我用谷歌搜索了大约一个小时,但似乎什么也找不到。如果你们能提供帮助那就太好了,因为我找不到解决方案!

您可能希望结合使用 INDIRECT():

在另一个空单元格中,假设 Q11 您将作为字符串 P1.

放入单元格引用

然后在各个单元格中输入以下公式:

=INDIRECT(Q11)
=OFFSET(INDIRECT(Q11),0,-4)
=OFFSET(INDIRECT(Q11),0,1)
=OFFSET(INDIRECT(Q11),0,2)

关于这两个公式的几句话,它们是 Volatile 函数。这意味着每次 excel 重新计算它们所引用的数据是否发生变化时,它们都会重新计算。所以如果你有一个 sheet 充满它们,它会在计算时间上产生明显的变化。只有四个不会引人注意。

假设在单元格 P11 中您有公式 =J14,您可以使用 FORMULATEXTINDIRECTSUBSTITUTE 的组合来获取单元格引用。我假设单元格 P11 中的公式只会引用其他单个单元格(例如 =J14=M10=N14)。如果这不是真的,并且公式将比引用一个单元格更复杂,则此方法将不起作用。

首先我们可以使用=FORMULATEXT(P11)获取单元格P11中的公式文本。结果是 =J14。为了成为有效的单元格引用,我们必须删除等号,我们可以通过应用 SUBSTITUTE 函数来完成,如下所示:

=SUBSTITUTE(FORMULATEXT(P11),"=","")

这个结果是 J14,这是一个有效的引用,我们可以将其传递给 INDIRECT 函数以获得我们最终想要的东西。

最后,在每个偏移公式中,您将拥有:

=OFFSET(INDIRECT(SUBSTITUTE(FORMULATEXT(P11),"=","")),0,-4)
=OFFSET(INDIRECT(SUBSTITUTE(FORMULATEXT(P11),"=","")),0,1)
=OFFSET(INDIRECT(SUBSTITUTE(FORMULATEXT(P11),"=","")),0,2)

这种方法的好处是只需要修改单元格P11中的公式,不依赖中间单元格。

希望这对您有所帮助,如果没有帮助,您可以澄清您的问题,我可以再试一次。