Excel 如何通过自定义表头名称获取单元格值

Excel 如何通过自定义表头名称获取单元格值,excel,excel-formula,Excel,Excel Formula,我有一个excel表格,像这样 | DOG | CAT | COW | CHICKEN ... ------+-----+------+------+------ FARM1 | 2 | 0 | 4 | 80 ------+-----+------+------+------- FARM2 | 0 | 3 | 12 | 125 ------+-----+------+------+------- ...... 是否可以通过客户标题而不是A2、B

我有一个excel表格,像这样

      | DOG | CAT  | COW  | CHICKEN ...
------+-----+------+------+------
FARM1 |  2  |  0   |   4  |   80
------+-----+------+------+-------
FARM2 |  0  |   3  |   12 | 125
------+-----+------+------+-------
......
是否可以通过客户标题而不是A2、B2获取值? 我希望能够像这样获取值

=FARM1DOG

有可能做到这一点吗?

您所描述的可以通过几种方式实现。我更喜欢索引(匹配(

假设您的上表位于电子表格的左上角,并继续到J10,您可以使用:

=INDEX($B$2:$J$10,MATCH("FARM1",$A$2:$A$10,0),MATCH("DOG",$B$1:$J$1,0))
另一方面,您也可以对命名范围进行命名,但如果列标题发生更改,则需要更改名称。只需在每个列的标题后命名整个列。因此,选择列B并为范围创建一个名为“Dog”的名称,然后为所有其他列创建一个名称。然后为行命名为行2“Farm1”,等等

然后您可以使用:

=FARM1 DOG

(它们之间的空格是intersect运算符)

假定数据较小,也可以手动命名范围:

  • 选择要命名的单元格
  • 公式->定义名称[CTRL+SHIFT+F3]
  • 随便你叫什么都行
  • 现在,您可以按给定名称引用单元格:


    编辑:

    或者,您也可以仅命名标题并通过
    =OFFSET
    引用它

    =OFFSET(<VERTICAL NAME>,,COLUMN(<HORIZONTAL NAME>) - COLUMN(<VERTICAL NAME>))
    

    如果您能更清楚地了解自己的问题,我们将不胜感激。阅读本文时,您会立即想到的是
    Indirect()
    用于基于其他条件进行调用,但如何应用取决于更多信息。什么不清楚?您可以使用带有索引/匹配组合的常规公式,但不能编写任意名称,如“FARM1DOG”(除非您定义了所有可能的组合)。您的问题让我感到困惑:“是否可以通过客户标题而不是A2、B2获取值?”。我觉得您在问如何基于
    Match()进行
    Index()
    ing条件间接,例如,我知道它是一只狗,或者我知道它是一只猫,我想知道农场2的值,我们可以这样做……但我不知道你开始用什么数据来做任何假设,只是关于你的输出的一个小想法。也许你想从“2”开始“看看什么有两个项目?这将是无数的事情。有一些索引的变化,但我自己解决。非常感谢!
    =OFFSET(farm1,,COLUMN(dog) - COLUMN(farm1))