0

当我尝试创建一个定义的名称(公式 > 定义的名称 > 名称管理器 > 等)代表表中的本地或同一行时,例如 =[@[TableColumnName]],Excel 不会让我说“语法名字不正确。”

我通过反复试验知道问题是我的引用框而不是定义名称的名称(正如上面引用的错误消息所暗示的那样)。

但是,我需要在定义名称中包含对与当前行相同的表行中的字段的引用,以缩短我的公式。最好的方法是什么?有替代符号吗?

为什么?我正在尝试将我的 Excel 数组公式缩短为 < 255 个字符,因此可以使用 Range.FormulaArray 以编程方式将它们放置在 VBA 中。

4

1 回答 1

1

我认为您不能对这样的定义名称公式使用结构化引用。

尝试:

=INDEX(Table1[#All],ROW(),1)

其中列索引1[TableColumnName]. 如果该列位置可能是可变的,则使用:

 =INDEX(Table1[#All],ROW(),MATCH("TableColumnName",Table1[#Headers],0))

并且,如果表可能从第 1 行以外的位置开始(这可能是最适合不同类型的数据配置的):

=INDEX(Table1[#All],ROW()-ROW(Table1[#Headers])+1,MATCH("TableColumnName",Table1[#Headers],0))
于 2018-09-14T16:18:38.647 回答