我可以使用 VLOOKUP 返回表名,然后在 INDEX 公式中使用吗?

我可以使用 VLOOKUP 返回表名,然后在 INDEX 公式中使用吗?

我有一个这样的 INDEX 公式:

=INDEX(Data3,MATCH(G4,Sheet2!$A$14:$A$17,0),VLOOKUP(F4,Threshold,2,TRUE))

但是,我想将其应用于数据,其中我希望 INDEX 公式返回数据的表可能是三个表“Data1,Data2 或 Data3”之一,具体取决于第三个因素。

我认为我可以按如下方式解决此问题:

=INDEX(VLOOKUP(D4,ChargeYear,2,TRUE),MATCH(G4,Sheet2!$A$14:$A$17,0),VLOOKUP(F4,Threshold,2,TRUE))

第一个 VLOOKUP 确实从 ChargeYear 表中返回 Data1、Data2 或 Data3,但它将返回值放在双引号中,因为它是一个文本值(我假设),因此 INDEX 公式无法将其识别为表名。有什么办法可以解决这个问题吗?

答案1

使用间接是一种选择 -

=INDEX(INDIRECT(VLOOKUP(1,Table4,2,0)&"[#ALL]"),MATCH("c",INDIRECT(VLOOKUP(1,Table4,2,0)&"[[#All],[Column1]]")),2)

我的图片无法正确显示,因此以下是公式结果

表 4 开始于A1;表 5 开始于A6;而表 6 开始于D6

您可以看到=VLOOKUP(1,Table4,2,0)表中列出的其中一个表的引用。

因此,我们将其扩展为,=MATCH("c",INDIRECT(VLOOKUP(1,Table4,2,0)&"[[#All],[Column1]]"))以使用该表来匹配“c”。它适用于indirect

现在,将其扩展为这样的索引/匹配 -=INDEX(INDIRECT(VLOOKUP(1,Table4,2,0)&"[#ALL]"),MATCH("c",INDIRECT(VLOOKUP(1,Table4,2,0)&"[[#All],[Column1]]")),2)

相关内容