Excel 用于查找结构化 table 和列的查找函数

Excel lookups function to find a structured table and column

我有一个包含一堆 table 的工作表。 table 是结构化的,但是标题(TABLE1、TABLE2)不是实际 table 的一部分。我正在尝试创建一个函数来查找哪个 table 对应于标题,然后查找 COLUMN3 到 return 值 SEVEN。这是他们的样子。我正在尝试使此函数足够灵活,以便如果我将值更改为 TABLE2,它将 return 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 知识是不存在的,所以我试图只用一个超级嵌套函数来解决这个问题(尽管欢迎任何 hints/solutions)。有任何想法吗?提前致谢!

您可以使用 table 名称(如果您使用 table 对象)或具有间接函数的范围名称。考虑下面的屏幕截图。

table 被称为 TableBlue 和 TableYellow,它们是使用 Insert > Table 创建的。结构化引用可用于引用table的元素,例如TableBlue引用蓝色table行中的所有table行,table,TableYellow[#Headers]指向表头黄色行table.

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

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

当然,这种 Indirect() 构造可以用于其他公式,而不仅仅是 Vlookup。这取决于你想要达到什么。但请注意,Indirect 是不稳定的并且会减慢速度,尤其是在大型工作簿中。