如何使用表符号按行号或水平标题引用Excel表格单元格?

时间:2014-07-25 06:47:43

标签: excel excel-formula

我想使用方括号表单公式表示法从表格 out 引用表格中的单个单元格。

像: [MyTable [MyField] 3] 要么 [MyTable [MyField] 3:3]

- 引用MyField列的第3行,或:

[MyTable [MyField] MyRow]

- 引用MyField列的MyRow行(最左边的行标题)。

需要从表外工作,即不能使用@或#ThisRow。

不寻找涉及MATCH,INDEX,OFFSET等的方法。不寻找VBA方法。只是简单的表符号。不寻找手动创建命名范围。

为什么呢?因为,表:))

2013年之前的Excel。

(PS,以前有没有一种方法(pre-Tables)按行和列标题引用单元格?我认为它可能被称为“自动命名”,或类似的东西。)

3 个答案:

答案 0 :(得分:4)

嘿,这很有效:

=表1 [Column2] 3:3

这样的进展:)

真棒将是一种通过最左列的内容引用行的方法。

THX!

答案 1 :(得分:3)

我们可以重用交集运算符的概念(即两个引用之间的空格)并改进它以获得表中目标项的相对行号,在此称为row_nb

=tbl[col] OFFSET(tbl[[#Headers],[col]],row_nb,)

或实际上没有交集(参见下面的评论):

=OFFSET(tbl[[#Headers],[col]],row_nb,)

E.g。 =Table1[Column2] OFFSET(Table1[[#Headers],[Column2]],2,)

这样您就不依赖于工作表中表的位置。好吧,它产生了一个更复杂的公式,其中表名tbl和列名col出现两次。以下是对它的一些评论:

  1. 您当然可以只保留OFFSET(...)部分。缺点是,如果row_nb超过表中实际的订单项数,公式将永远不会返回任何错误。它会返回,例如如果表格下方的单元格为空,则只需0

  2. 当我们引用一个表外行时保留一个抛出错误的公式,我们可以进一步改进它:使它成为动态的"允许tblcolrow_nb为参数:

  3. =INDIRECT(tbl&"["&col&"]") OFFSET(INDIRECT(tbl&"[[#Headers],["&col&"]]"),row_nb,)

    假设我们已将tblcolrow_nb定义为命名范围。或者只是使用单元格地址:

    =INDIRECT(A1&"["&A2&"]") OFFSET(INDIRECT(A1&"[[#Headers],["&A2&"]]"),A3,)

    我不是INDIRECT的忠实粉丝,但在这种情况下,让公式适应各种表格,列和订单项真的很方便。

答案 2 :(得分:0)

您还可以按以下方式使用index()函数:

index(MyTable[MyField], 3)

因此,您从表MyTable的MyField列中获得第3行。

参考: https://www.ozgrid.com/forum/forum/help-forums/excel-general/116365-reference-a-single-cell-in-a-table-using-structured-referencing