代码之家  ›  专栏  ›  技术社区  ›  MsAgentM

不引用Excel表中的列

  •  0
  • MsAgentM  · 技术社区  · 5 年前

    我不知道我遗漏了什么,但这对我来说是一个反复出现的问题。我想引用表中的一列,通常是为了索引函数,但vlookups也有这个问题。指示要从中获取信息的列时出现问题。我确信我的语法有问题,但从研究来看,我似乎没有。

    我正试图从工作簿中表的第二列获取数据。它在另一个工作表上。公式引用正确的表,match函数中指示的列返回正确的行号。当我试图通过表引用引用引用我想要的列时,我得到一个引用错误。请告诉我我错过了什么。

    这将返回一个引用错误:

    =INDEX(Intake,MATCH(C3,Intake[Helpercolumn2/SID],0),Intake[Begin])
    

    这将返回正确的数据:

    =INDEX(Intake,MATCH(C3,Intake[Helpercolumn2/SID],0),2)
    

    请注意,已尝试以下所有操作,但同时返回一个引用错误:

    =INDEX(Intake,MATCH(C3,Intake[Helpercolumn2/SID],0),Intake[@Begin])
    =INDEX(Intake,MATCH(C3,Intake[Helpercolumn2/SID],0),Column(Intake[Begin]))
    =INDEX(Intake,MATCH(C3,Intake[Helpercolumn2/SID],0),Intake[[#Data],[Begin]])
    =INDEX(Intake,MATCH(C3,Intake[Helpercolumn2/SID],0),Intake[[#All],[Begin]])
    
    1 回复  |  直到 5 年前
        1
  •  1
  •   Scott Craner    5 年前

    要返回的列是索引中的第一个范围:

    =INDEX(Intake[Begin],MATCH(C3,Intake[Helpercolumn2/SID],0))
    

    索引中的第三个标准是可选的,只有当第一个标准中的引用是二维的时才需要。

    所以你可以使用:

    =INDEX(Intake[#Data],MATCH(C3,Intake[Helpercolumn2/SID],0),3)
    

    在哪里? 3 是表中的相对列号。但是,如果列顺序更改,则需要更改公式。第一个更好,因为它与列的顺序无关。