拖动涉及 INDIRECT 的 Excel 公式

拖动涉及 INDIRECT 的 Excel 公式

=INDIRECT("'"&$A4&"'!E4")

这应该使用在 A4 中找到名称的工作表的单元格 E4 中的值。实际上,它有效。但是,当我将此公式拖到多个列/行时,它A4会更新到不同的列,但E4不会...我想是因为它在一个字符串中。

我怎样才能让它工作,我尝试的一切都给我!REF?

答案1

尝试使用CELL这样的函数

=INDIRECT("'"&$A4&"'!"&CELL("address",E4))

这会将 E4 转换为文本以用于 INDIRECT 函数,但在您拖动时仍会更新

答案2

嗯,你的评论不是很清楚,所以我想如果我提供一些东西然后你根据你的需要进行调整,会更简单。

我假设您=INDIRECT("'"&$A4&"'!E4")在 sheetTarget和 cell中有公式A1

=INDIRECT("'"&$A4&"'!E4")

您可以将其更改为:

=INDIRECT("'"&$A4&"'!"&CHAR(96+COLUMN()+4)&ROW()+3)

COLUMN()返回公式所在的列。此处,由于公式位于单元格 A1 中,因此COLUMN()返回 1。

ROW()操作方式相同,但是使用行数,并且这里也返回 1。

CHAR(96+COLUMN()+4)在这种情况下将返回CHAR(96+1+4)字母E

ROW()+3将返回 ,1+34

将所有内容连接起来将得到 E4。

当您在 B1 中复制/粘贴此公式时,您将得到:

=INDIRECT("'"&$B4&"'!"&CHAR(96+COLUMN()+4)&ROW()+3)

COLUMN()现在返回 2 因为它在第二列并且CHAR()将返回F

由于行相同,4所以得到 ,这样引用的单元格就变成F4

相关内容