Excel 讨厌在 Table 格式中引用同一行的公式的定义名称,例如[@[Table列名]]
Excel Hates Defined Name for Formula referring to Same Row in Table Format, e.g. [@[TableColumnName]]
当我尝试创建一个定义名称(公式 > 定义名称 > 名称管理器 > 等)代表 table 中的本地行或同一行时,例如=[@[TableColumnName]], Excel 不让我说 "The syntax of the name isn't correct."
我通过反复试验知道问题出在我的“引用”框上,而不是“定义名称”的名称(如上面引用的错误消息所暗示的)。
但是,我需要在与当前定义名称相同的 table 行中包含对字段的引用,以缩短我的公式。最好的方法是什么?有替代符号吗?
为什么?
我正在尝试将我的 Excel 数组公式缩短到 < 255 个字符,以便可以通过 Range.FormulaArray 以编程方式将它们放置在 VBA 中。
我认为您不能像那样对定义的名称公式使用结构化引用。
尝试:
=INDEX(Table1[#All],ROW(),1)
其中列索引 1
与 [TableColumnName]
是同一列。如果该列位置可能可变,则使用:
=INDEX(Table1[#All],ROW(),MATCH("TableColumnName",Table1[#Headers],0))
并且,如果 table 可能从第 1 行以外的行开始(这可能是最适应 table 不同类型数据配置的):
=INDEX(Table1[#All],ROW()-ROW(Table1[#Headers])+1,MATCH("TableColumnName",Table1[#Headers],0))
当我尝试创建一个定义名称(公式 > 定义名称 > 名称管理器 > 等)代表 table 中的本地行或同一行时,例如=[@[TableColumnName]], Excel 不让我说 "The syntax of the name isn't correct."
我通过反复试验知道问题出在我的“引用”框上,而不是“定义名称”的名称(如上面引用的错误消息所暗示的)。
但是,我需要在与当前定义名称相同的 table 行中包含对字段的引用,以缩短我的公式。最好的方法是什么?有替代符号吗?
为什么? 我正在尝试将我的 Excel 数组公式缩短到 < 255 个字符,以便可以通过 Range.FormulaArray 以编程方式将它们放置在 VBA 中。
我认为您不能像那样对定义的名称公式使用结构化引用。
尝试:
=INDEX(Table1[#All],ROW(),1)
其中列索引 1
与 [TableColumnName]
是同一列。如果该列位置可能可变,则使用:
=INDEX(Table1[#All],ROW(),MATCH("TableColumnName",Table1[#Headers],0))
并且,如果 table 可能从第 1 行以外的行开始(这可能是最适应 table 不同类型数据配置的):
=INDEX(Table1[#All],ROW()-ROW(Table1[#Headers])+1,MATCH("TableColumnName",Table1[#Headers],0))