Excel:如何使单元格引用动态?



非常奇怪的场景:我有一个非常复杂的excel表格,我想使尽可能不容易出错。这样做的原因是,表单将来可能会被扩展。

FirstWorksheet:

Cell A1: Parameter 1
Cell A2: 1.500 
Cell A3: 1.600
Cell A4: 2.000
Cell A5: =Average(A2:A4)
Cell A6:
Cell A7: Parameter 2
Cell A8: 1.500 
Cell A9: 1.600
Cell A10: 2.000
Cell A11: =Average(A8:A10)

SecondWorksheet:

Cell A1: Parameter 1 Average
Cell A2: =FirstWorksheet!A5
Cell A3:
Cell A4: Parameter 2 Average
Cell A5: =FirstWorksheet!A11

现在,如果我想防止引用中的打字错误,而不是手动编写"=FirstWorksheet!A11到第二个工作表的单元格A5,我想复制单元格A2并粘贴到单元格A5。

问题是,如果我这样做,excel不会使"=FirstWorksheet!A11"但是"=FirstWorksheet!A8",因为显然A5在A2下面三行,所以目前我每次复制它们时都必须手动纠正这些引用。

所以我想在表格2的单元格中输入这样的内容:

=FirstWorksheet!A<some formula in dependence of the current row of sheet two>

这是可能的吗?

我尝试了这样的东西来测试它(假设A1通过任何计算包含我需要在第二个工作表中引用的行号):

A1: 1234
A2: A
A3: 1
A4: =A2&A3
A5: =indirect(A4)

此时,单元格A5显示"1234"作为值,因此这将是我想要引用的假设单元格,因此我知道计算有效。

有了这个,我理论上可以计算正确的行号,但是我如何使用这个数字作为动态单元格引用?

如果我这样做(按照上面的例子):

="=FirstWorksheet!A"&Indirect(FirstWorksheet!A5)

期望公式像我手动输入

一样工作
=FirstWorksheet!A1234

,但它当然没有(我只是得到一个"#REF!"错误)

所以问题是:我想做的事情是可能的吗,如果是,我的错误在哪里,有没有更简单的方法来做到这一点?

作为一个提醒,我现在可以很容易地在复制后手动修改参考文献,这可能需要1-2个小时才能完成,但这很容易出错,而且由于文档是以相当有规律的间隔扩展的,如果你只需要在excel中复制一个块,其他一切都是自动完成的,这将是非常方便的,进一步降低了出错的风险。

把第一部分放到INDIRECT里面。

=INDIRECT("FirstWorksheet!A"&FirstWorksheet!A5)

最新更新