在工作表单元格区域中查找值时,我们通常使用VLOOKUP函数。但是,如果在多个工作表中查找值并返回第一个匹配的值,可以使用VLOOKUP函数吗?本文将解释这项技术。
最简单的解决方法是在每个相关的工作表中使用辅助列,即首先连接相关的单元格值,并将其放置在辅助列中。但是,有时我们可能无法在工作表中使用辅助列,尤其是当需要在被搜索的表的左侧插入列时。因此,本文将提供一个不使用辅助列的解决方案。
以下是三个示例工作表:
图1:工作表1。
图2:工作表2。
图3:工作表3。
该示例要求在这三个工作表中从左到右搜索,并在“金额”列中返回与“颜色”列中的“红色”对应的值,如下图4所示。
图4:主工作表的主人。
阵列如下:
=VLOOKUP($A3,间接(“”)索引(Sheets,MATCH(TRUE,COUNTIF(INDIRECT(“””Sheets“)”!B:B "),$A3)0,0))" '!B1:D10),3,0)
其中工作表是定义的名称:
名称:工作表
参考位置:={“sheet 1”、“sheet2”、“sheet 3”}
公式中使用的VLOOKUP函数与通常没有什么不同。我们需要先确定搜索哪个工作表,所以我们使用的函数应该能够操作三维单元格区域,而COUNTIF函数可以。在公式中:
COUNTIF(间接(“‘Sheets’”)!B:B ")、A3美元)
转换为:
COUNTIF(间接(“”{“sheet 1”、“Sheet2”、“sheet 3”}”)!B:B ")、A3美元)
转换为:
COUNTIF(间接({“”sheet 1!B:B "、“‘sheet 2’!B:B "、“‘sheet 3’!B:B"}),$A3)
间接函数指示Excel将此文本字符串数组中的元素转换为单元格引用,然后传递给COUNTIF函数,单元格A3中的值作为其条件参数,从而将上述公式转换为:
{0,1,3}
它们分别代表工作表第1、第2和第3页b栏中的“红色”数字。
因为我们想要获得第一个MATCHing结果,所以我们将数组传递给match函数:
MATCH(TRUE,COUNTIF(间接(“‘Sheets’”)!B:B "),$A3)0,0)
转换为:
匹配(真,{0,1,3}0,0)
转换为:
匹配(真,{假,真,真},0)
结果是:
2
因此,VLOOKUP操作将在工作表列表中的第二张工作表Sheet2中执行。
现在,将上述结果作为参数值传递给INDEX函数:
索引(工作表,匹配(真,计数(间接(“‘工作表’”)!B:B "),$A3)0,0))
转换为:
索引(工作表,2)
转换为:
索引({“第1页”、“第2页”、“第3页”},2)
结果是:
第2页
这里,需要进一步构造间接函数来生成传递给VLOOKUP函数的单元区域,因此:
=VLOOKUP($A3,间接(“”)索引(Sheets,MATCH(TRUE,COUNTIF(INDIRECT(“””Sheets“)”!B:B "),$A3)0,0))" '!B1:D10),3,0)
转换为:
=VLOOKUP($A3,INternet(' sheet 2 ' ' ')!B1:D10,3,0)
转换为:
=VLOOKUP($A3,INDIRECT(' sheet 2 '!B1:D10,3,0)
转换为:
=VLOOKUP($A3,' Sheet2 '!B1:D10,3,0)
获取结果:
55