在 Excel 中动态引用命名表列(通过单元格内容)

rcp*_*phq 14 microsoft-excel-2007 worksheet-function microsoft-excel

如何在 Excel 2007 中动态引用 Excel 表格列?我想引用命名表的命名列,引用的列将随单元格的值而变化。

我在 Excel 中有一个表格(我们称之为Table1)。我想引用它的一列和该列中COUNT的数字。我想从另一个单元格 ( A1) 中的值动态识别引用的列,以便我可以获得以下结果: 当我更改时A1,计算Table1[ DynamicallyReferencedColumnName ]的公式将更新为新引用。

例子:

  • 如果A1= names??? 那么公式将等于COUNT(Table1[names]).
  • 如果A1=lastname那么公式将等于COUNT(Table1[lastname])

我尝试使用=COUNT(Table1[INDIRECT("$A$1")]),但 Excel 说公式包含错误。

我怎样才能做到这一点?


PS?我发现这个可能相关的 MSDN 文档: Excel recalculation

小智 19

使用 INDIRECT 方法是有效的,但最好尽可能避免,因为它是一个易变的函数,并且会对您的电子表格产生巨大的计算影响。

完成您想要的非易失性替代方案是使用 INDEX/MATCH

COUNT(INDEX(Table1, 0, MATCH($A$1, Table1[#Headers], 0)))
Run Code Online (Sandbox Code Playgroud)

-蒂姆


Exc*_*lll 14

你几乎用INDIRECT(),但你的逻辑有点不对劲。试试这个:

=COUNT(INDIRECT("Table1["&A1&"]"))
Run Code Online (Sandbox Code Playgroud)

要记住的关键是INDIRECT()第一个参数只需要文本(即字符串)。因此,您必须将表引用的所有部分作为文本传递给函数。