Excel 中使用 vlookup 间接查找
如果要使用VLOOKUP并且要查找的数据位于不同的工作表中,则可以将它们与INDIRECT组合起来。它可以帮助您在单个公式中定义多个范围。
在上面的示例中,我们在三个不同的电子表格中拥有每月数据。但只需一次 VLOOKUP + INDIRECT,您就可以从多张表中获取所有月份的所有产品的数量。
=VLOOKUP($A2,INDIRECT("'"&B$1&"'!"&"A:B"),2,FALSE)
要理解这个公式,您需要将其分为两部分:
在第一部分中,我们有 INDIRECT 函数,它使用第 1 行的名称创建对工作表的引用。在下面的示例中,我们引用工作表 Jan 的范围 A:B。
您需要在 INDIRECT 中创建一个结构,以引用具有数据名称和范围的工作表。
=INDIRECT("'"&B$1&"'!"&"A:B")
将公式移动到 Feb 列后,间接中的引用就会移动到 Feb 工作表。
在第二部分中,VLOOKUP使用INDIRECT返回的表范围地址,并根据范围中指定的col_index_num获取其值。
很重要的一点
在上面的公式中,您需要正确的结构来引用具有工作表名称的范围。如果您在 INDIRECT 中输入以下结构:
"'"&B$1&"'!"&"A:B"
他会回来的:
"'Jan'!A:B"
替代方法
INDIRECT 是一个易失性函数。当电子表格发生更改时它会更新。这就是您可以考虑使用 CHOOSE 的原因。例如,通过 CHOOSE,您可以使用 VLOOKUP 编写三个公式。
=CHOOSE(B$1,VLOOKUP($A2,Jan!$A:$B,2,0),VLOOKUP($A2,Feb!$A:$B,2,0),VLOOKUP($A2,Mar!$A:$B,2,0))
在这个公式中,正如我所说,我们有三个 VLOOKUP,当使用 CHOOSE 时,您可以决定从任何 VLOOKUP 中获取结果
在CHOOSE中我们提到了B1;在第 1 行中,您可以使用索引号从 SELECT 中获取公式值。
例如,当你有2时,CHOOSE将返回第二个VLOOKUP的值;从第三个开始,有3个。