【问题标题】:Excel lookups function to find a structured table and columnExcel 查找功能可查找结构化表和列
【发布时间】:2017-12-01 05:55:39
【问题描述】:

我有一个包含一堆表格的工作表。这些表是结构化的,但是标题(TABLE1、TABLE2)不是实际表的一部分。我正在尝试创建一个函数来查找与标题对应的表,然后查看COLUMN3 以返回值SEVEN。这是他们的样子。我试图使这个函数足够灵活,这样如果我将值更改为 TABLE2,它将返回 GG

TABLE1 +---------+---------+---------+----------+ | column1 | column2 | COLUMN3 | column4 | +---------+---------+---------+----------+ | row1 | xxx | xxx | xxx | | row2 | xxx | SEVEN | xxx | | row3 | xxx | xxx | xxx | | row4 | xxx | xxx | xxx | +---------+---------+---------+----------+

TABLE2 +---------+---------+---------+----------+ | column1 | column2 | COLUMN3 | column4 | +---------+---------+---------+----------+ | row1 | bb | cc | dd | | row2 | ff | GG | hh | | row3 | zzz | zzz | zzz | | row4 | zzz | zzz | zzz | +---------+---------+---------+----------+

我不知道从哪里开始。我的 VBA 知识不存在,所以我试图只用一个超级嵌套函数来解决这个问题(尽管欢迎任何提示/解决方案)。有任何想法吗?提前致谢!

【问题讨论】:

    标签: excel indexing excel-formula lookup table-structure


    【解决方案1】:

    您可以使用表名(如果您使用表对象)或范围名称与间接函数。请看下面的截图。

    这些表被称为 TableBlue 和 TableYellow,并且是使用 Insert > Table 创建的。结构化引用可用于引用表格的元素,例如TableBlue 引用蓝色表​​格中的所有表格行,TableYellow[#Headers] 指向黄色表格的标题行。

    此文本可以插入到 Indirect() 函数中,然后该函数将指向相应的范围。 E11 中的公式将其组件与 Indirect 放在一起,并使用左侧单元格中的文本。看看当它被复制下来时,它如何在不同的表中查找,甚至可以从不同的列返回值。

    =VLOOKUP(C11,INDIRECT(B11),MATCH(D11,INDIRECT(B11&"[#Headers]"),0),FALSE)
    

    这种 Indirect() 构造可以用于其他公式,当然不仅仅是 Vlookup。这取决于您想要达到的目标。但请注意,间接是易变的,可能会减慢速度,尤其是在大型工作簿中。

    【讨论】:

    • 感谢您的回答!是的,我正在使用表对象,我认为 Indirect() 绝对是我会考虑以适应我的索引匹配的东西。我对您的示例有疑问:如果表名与我指定的表名不是一对一的,您会建议做什么?例如我的标题是 "Table Blue Y" 我的表名是 TableBlue
    • 什么标题?标题从何而来?
    • “标题”是指显示TableBlueTableYellow 的单元格
    • 那只是装饰。它没有在公式中使用。表格的名称(您在表格工具功能区的名称框中看到的内容)才是最重要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 2015-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多