将 Excel Indirect 与工作表名称结合使用

将 Excel Indirect 与工作表名称结合使用

我有一本包含多个工作表的工作簿,并且在一些工作表中开发了对其中一个工作表中某一行的查询/引用。

我意识到,当我向引用的工作表添加一行时,查询/引用并未意识到已添加新行。我不明白为什么,但无论如何,我发现了一些对名为 INDIRECT 的函数的引用,该函数似乎可以解决这个问题。是吗?

我试图弄清楚如何在公式中引用单独的工作表,但似乎无法让它工作。当前引用是: ='B&A'!P41其中B&A是工作表名称,P41是引用的单元格。

因此这里有两个问题:

  1. 当我添加新行时,INDIRECT 能解决我的问题B&A吗?
  2. 如果是这样,那么 INDIRECT 函数的正确语法是什么?

答案1

是的,INDIRECT将强制它始终查看同一个单元格,无论其他单元格是否被添加/删除。

INDIRECT接受一个字符串,然后将其用作单元格地址。因此,您当前的公式为:

='B&A'!P41

会成为

=INDIRECT("'B&A'!P41")

使用此功能,它应该静态引用单元格,并且仅当引用的单元格发生变化时更新。

答案2

如果您需要在引用的工作表中添加新行/单元格/列,则必须创建一种方法让引用公式识别这一点。

我将在引用的工作表中创建一个单元格,以文本形式包含表/数组引用
- 例如$A1:$B200在命名单元格中,例如table_ref-
然后可以使用额外的 INDIRECT() 将其拾取并取消引用(从其他工作表中),如下所示INDIRECT( INDIRECT(table_ref) )

在创建内容时,您table_ref可能必须使用CELLS()、、、或类似的函数,并连接其中几个函数的结果 - 我相信还有一些我现在记不起来的类似函数。COUNTIF()SUBTOTAL()OFFSET()ROWS()

相关内容