我正在尝试使用不同工作表中现有表中现有表的数据填充新工作表中的新表。我需要引用列标题名称,因为列的位置可能会更改。
我目前有这个:
=TableName[@[ColumnHeaderName]]
这有效,但问题是当我尝试对新表中的任何列进行排序时,它不会排序,因为它引用了现有表中的同一行。我猜我需要引用列名和行号,但是当我尝试"=TableName[@[ColumnHeaderName]] 2:2"时,它会显示 #VALUE!
任何帮助将不胜感激。
您似乎正在使用 excel 表格(即ListObjects
)。
公式:
=TableName[@[ColumnHeaderName]]
指
- 表:TableName
- 列:ColumnHeaderName
- 行:从Table
所在的Worksheet
输入公式的单元格的Row
。
因此,如果TableName
标题位于Sheet1
的第 6 行,并且在Sheet2
的第 8 行中输入公式,它将返回第ColumnHeaderName
列、Sheet1
第 8 行中的值,即Table.Body
的第 2 行(即DataBodyRange
)
若要返回TableName
的第ColumnHeaderName
列中的第一个值,请使用以下公式:
=INDEX(TableName[ColumnHeaderName],1)
TableName[@[ColumnHeaderName]]
引用表的同一行,TableName[ColumnHeaderName]
引用整个列。
此外,上述任何公式都排除了表的标题。
要引用标头,请使用:
=TableName[[#Headers],[ColumnHeaderName]]
如果要引用整个标头,请使用:
=TableName[#Headers]
由于您在另一个 excel 表中输入公式,因此将其命名为Table2
,为了使行号动态更新,请输入以下公式:
=INDEX(TableName[ColumnHeaderName],ROW()-ROW(Table2[#Headers]))