如何在Excel中使用多个表的VLOOKUP公式

  • Share This
Hugh West

今天我们将展示如何使用 VLOOKUP公式 实际上,Excel中最重要和最广泛使用的功能之一是 VLOOKUP函数 此外,我们可以使用 VBA的VLOOKUP函数 来查找单个工作表或一系列工作表中的特定数据。

此外,今天我们将展示如何利用 VLOOKUP公式 中寻找一些特定的数据。 多个工作表 在Excel中。

下载实践工作手册

你可以从这里下载实践工作手册。

带有多个表的VLOOKUP公式.xlsx 模拟考试分数.xlsx

Excel的VLOOKUP函数简介

=VLOOKUP(lookup_value,table_array,col_index_num,[range_lookup] )

  • 这个函数接收一个名为 表_数组 作为一个参数。
  • 然后,搜索一个特定的值,称为 查找_值 首先 栏中的 表_数组 .
  • 此外,寻找一个近似的匹配,如果 [range_lookup] 论点是 为真 ,否则就搜索完全匹配的。 这里,默认是 为真 .
  • 如果它发现任何匹配的 查找_值 首先 栏中的 表_数组 ,向右移动几步到一个特定的列 (col_index_number)。

然后,返回该单元格的值。

此外,我们还附上了一个例子 VLOOKUP 现在,请看下图。

公式分解

这里,公式为 vlookup(g8,b4:d15,3,false) 的值进行了搜索。 G8 单元" 安吉拉 "在 首先 表的列。 B4:D15 .

在它找到一个之后,它直接移到了 第三届 栏(由于 栏位数 3 .)

然后从那里返回值,是 322 .

在Excel中使用多张表的VLOOKUP公式的5种方法

在这里,我们有一本工作手册,上面有一些考生在三周内的笔试和口试的分数,在不同的工作表里。 此外,第一本的名字是 第一周 .

然后,在 第2次 工作表是 第二周 .

最后是 第三届 工作表,其中包含有以下标记 马可集团 第三周 .

现在,我们的目标是将他们的标记从 工作表到新的工作表,使用 VLOOKUP Excel的功能。

1.用VLOOKUP公式在每个工作表上单独搜索

在这里,我们有一个新的工作表,名为 "只有VLOOKUP" 按字母顺序排列的所有候选人姓名 (A到Z) 现在,我们将使用 VLOOKUP 公式来搜索Excel中的多个工作表。

首先,我们将通过搜索 分开的工作表。

在这里,我们将搜索 查找_值 从一个工作表到另一个工作表的单元格范围。

公式的语法将是:。

=VLOOKUP(lookup_value,'Sheet_name'! table_array, col_index_number,FALSE)

  • 要搜索的是 符号 书面 的。 第一周的候选者 ,将这个公式输入到 C5 新工作表的单元格。
=VLOOKUP(B5,'Week 1'!$B$5:$D$10,2,FALSE)

  • 随后,按 进入 .

这表明 #N/A! 错误,因为单元格的值 B5 "只有VLOOKUP" 片。 亚历克斯-黑尔斯 ,在范围内不存在 B5:D10 的板材 "第一周 " .

  • 然后,拖动 填充手柄 图示。

因此,我们只看到了那些参加考试的考生的分数。 第一周 正在显示,其余的都显示错误。

  • 同样地,要想找到万岁的分数,请在以下公式中写下 D5 细胞。
=VLOOKUP(B5,'Week 1'!$B$5:$D$10,3,FALSE)

  • 然后,按 进入 .

  • 然后,拖动 填充手柄 图标来应用其余单元格中的公式。

因此,我们只看到那些出现在下列考试中的考生的分数 第一周 正在显示,其余的都显示错误。

此外,我们可以对以下情况进行类似的处理 第二周 第三周 因此,我们必须寻找一种更好的方法。

通知。 在这里,我们使用了相对的单元格引用,用于 lookup_value (B5) ,但绝对的单元格引用为 table_array ($B$5:$D$10) 因为我们希望 查找_值 在拖拽过程中,一个一个地增加。 填充手柄 图标,但 表_数组 保持不变。

阅读更多。 为什么VLOOKUP在存在匹配时返回#N/A? (5个原因& 解决方案)

2.在Excel中用IFERROR函数搜索多个表

这一次,我们将首先在第一个工作表中搜索一个候选人( 第一周 ).

然后,如果我们在第一个工作表中没有找到他/她,我们将在第二个工作表中搜索( 第二周 ).

如果我们仍然没有找到他/她,我们将在第三个工作表中搜索( 第三周 ).

如果我们没有找到他/她,我们将决定他/她是 缺少 从考试中。

在上一节中,我们看到。 VLOOKUP 返回 不适用! 如果它没有找到任何与之匹配的 查找_值 表_数组 .

所以这一次我们将筑巢 VLOOKUP 内的功能 IFERROR函数 来处理这些错误。

因此,该公式的语法将是:。

=IFERROR(VLOOKUP(lookup_value, "Sheet1_Name"!table_array,col_index_number,FALSE),IFERROR(VLOOKUP(lookup_value, "Sheet2_Name"!table_array,col_index_number,FALSE),IFERROR(VLOOKUP(lookup_value, "Sheet3_Name"!)

  • 现在,在以下公式中输入 C5 的细胞。 "VLOOKUP & IFERROR" 片。
=IFERROR(VLOOKUP(B5,'Week 1'!$B$5:$D$10,2,FALSE),IFERROR(VLOOKUP(B5,'Week 2'!$B$5:$D$10,2,FALSE)), "缺席") )

  • 然后,按 进入 .

因此,你会看到以下的书面标记 亚历克斯-黑尔斯 .

然后,我们将找到亚历克斯-黑尔斯的万岁标记。

  • 因此,在以下公式中写下 D5 细胞。
=IFERROR(VLOOKUP(B5,'Week 1'!$B$5:$D$10,3,FALSE),IFERROR(VLOOKUP(B5,'Week 2'!$B$5:$D$10,3,FALSE)), "缺席") )

  • 之后,按 进入 .

  • 然后,选择两个单元格 C5 D5 .
  • 因此,拖动 填充手柄 图标到 自动填表 其他单元格中的相应数据 C6:D24 .

最后,你会看到所有候选人的笔试和面试分数。

阅读更多。 Excel中两个表之间的VLOOKUP示例

类似读物

  • VLOOKUP不工作(8个原因& 解决方案)
  • Excel中的LOOKUP与VLOOKUP:有三个例子
  • 什么是VLOOKUP中的表阵列? (有例子说明)
  • 如何在Excel中使用嵌套VLOOKUP(3个标准)
  • 在Excel中使用多条件的VLOOKUP(6种方法+替代方法)

3.使用组合公式在Excel中搜索多个表

实际上,嵌套的 误差(IFERROR VLOOKUP 基本上,如果有很多工作表,很可能会被混淆并产生错误。

因此,我们将生成另一个公式,使用 诱导性 , 索引 , 匹配 ,以及 COUNTIF 函数,看起来更加复杂,但在有很多工作表的情况下,相对来说更容易应用。

  • 首先,创建一个包含所有工作表名称的水平数组。 在这里,我们已经创建了一个在 F5:H5 细胞。

  • 然后,在以下公式中插入 C5 细胞。
=IFERROR(VLOOKUP(B5,INDIRECT("'"&INDEX($F$5:$H$5,1,MATCH(TRUE,COUNTIF(INDIRECT("'"&$F$5:$H$5&"'!B5:B10"),B5)>0,0))&'!$B$5:$D$10") ,2,FALSE) ,"缺席")

  • 随后,按 进入 .

公式分解

  • 首先。 COUNTIF(INDIRECT("'"&$F$5:$H$5&"'! B5:B10"),B5) 返回单元格中值的多少倍 B5 的范围内存在 '第一周'!B5:B10 , '第二周'!B5:B10 '第三周'!B5:B10 分别是:[这里 5美元:5美元 是工作表的名称。 因此,在 诱导性 公式收到 'Sheet_Name'!B5:B10 .]
    • 输出:{0,0,1} .
  • 其次。 MATCH(TRUE,{0,0,1}>0,0) 返回在哪个工作表中的值 B5 是存在的。
    • 输出。 3 .
  • 在这里,它返回了 3 中的值,因为 B5 ( 亚历克斯-黑尔斯 )是在工作表的第 3 ( 第三周 ).
  • 第三。 index($f$5:$h$5,1,3) 返回工作表的名称,其中单元格中的值为 B5 是。
    • 输出:"第三周" .
  • 第四。 INDIRECT("'"& "第3周″&"'!$B$4:$D$9") 返回工作表的单元格的总范围,其中的值为 B5 是存在的。
    • 输出:{"Nathan Mills",72,59;"Ruth Williamson",53,55;"Alex Hales",67,70;"Matthew Shepherd",76,45;"Christina Paul",69,75;"Ricardo Moyes",57,61}。
  • 最后。 VLOOKUP(B5,{"Nathan Mills",72,59; "Ruth Williamson",53,55; "Alex Hales",67,70; "Matthew Shepherd",76,45; "Christina Paul",69,75; "Ricardo Moyes",57,61},2,FALSE。) 返回的是 第2栏 的行,其中单元格中的值为 B5 匹配。
    • 输出:67 .
  • 所以,这就是我们要找的笔试分数。
  • 如果在任何工作表中找不到该名称,它将返回 "缺席" 因为我们把它嵌套在一个 误差(IFERROR 功能。

在这里,你可以用一个类似的公式来求出 胜利 候选人的分数。

  • 因此,改变 栏位数 2 3 并写出公式。
=IFERROR(VLOOKUP(B5,INDIRECT("'"&INDEX($F$5:$H$5,1,MATCH(TRUE,COUNTIF(INDIRECT("'"&$F$5:$H$5&"'!B5:B10"),B5)>0,0))&'!$B$5:$D$10"),3,FALSE),"缺席")

  • 然后,按 进入 来获得结果。

  • 然后拖动 填充手柄 图示。

最后,我们得到了所有考生的笔试和面试分数。 此外,没有找到名字的考生已被标记为缺席。

阅读更多。 INDEX MATCH与VLOOKUP功能的对比(9个例子)

4.带有动态列索引号的VLOOKUP公式

直到现在,为了提取笔试中的分数,我们使用的是 col_index_num 作为 2 .还有,为了口试的分数。 3 .

实际上,我们是在两栏中分别插入公式。

最终,当我们有几列时,在所有的列中分别插入公式将是相当麻烦的。

因此,这次我们将生成一个公式,这样我们就可以把这个公式插入到 首先 列,并将其拖到所有的列中,通过 填充手柄 图示。

简单,而不是插入一个纯数字作为 col_index_num ,插入 columns($c$1:d1) 如果该公式是在 C列 ( 书面分数 ).

然后,它将返回 2 .

然后,如果我们把它拖到 E栏 ,它将成为 columns($c$1:e1) 并返回 3 以此类推。

  • 所以现在我们把上一节的公式改成这样。
=IFERROR(VLOOKUP($B5,INDIRECT("'"&INDEX($F$5:$H$5,1,MATCH(TRUE,COUNTIF(INDIRECT("'"&$F$5:$H$5&"'!B5:B10"),$B5)>0,0))&'!$B$5:$D$10"),COLUMNS($C$1:D1),FALSE), "缺席")

  • 然后,按 进入 .

  • 之后,拖动 填充手柄 图标的右侧,以获得 胜利 痕迹。

  • 然后,拖动 填充手柄 图标向下。

最后,你会看到所有候选人的笔试和面试分数。

通知。 在这里,我们已经改变了 查找_值 B5至$B5 这样,向右拖动时,它保持不变,但向下拖动时就会改变。

阅读更多。 Excel动态VLOOKUP(含3个公式)

5.Excel中带有组合函数的VLOOKUP公式

在这里,我们将使用另一个 VLOOKUP 在Excel中,如果有多个工作表,就会忽略这个公式。 误差(IFERROR 因此,让我们看看下面的步骤。

步骤。

  • 首先,你必须选择一个新的单元格 C5 你想保留书面标记的地方。
  • 其次,你应该使用下面的公式,在 C5 细胞。
=VLOOKUP(B5,INDIRECT("'"&INDEX($F$5:$H$5,MATCH(1,--(COUNTIF(INDIRECT("'"&$F$5:$H$5&"'!$B$5:$D$10"),B5)>0),0)&"'!$B$5:$D$10") ,2,FALSE)

  • 第三,按 进入 .

  • 同样,在以下公式中使用 D5 细胞,以获得Viva的分数。
=VLOOKUP(B5,INDIRECT(" '"&INDEX($F$5:$H$5,MATCH(1,--(COUNTIF(INDIRECT(" '"&$F$5:$H$5&" '!$B$5:$D$10"),B5)>0),0)&" '!$B$5:$D$10") ,3,FALSE)

  • 随后,按 进入 .

  • 然后拖动 填充手柄 图示。

最后,你将看到所有候选人的笔试和面试分数。 此外,你将看到 #N/A 错了,在提到的床单中缺少名字。

Excel中VLOOKUP函数的局限性和一些替代方法

  • 在这里,你不能使用 VLOOKUP 功能,当 查找_值 不在 首先 例如,在前面的例子中,你不能使用 VLOOKUP 功能,以了解被选中的候选人的姓名。 90 在笔试中。
  • 然而,你可以使用 基金会 , IFS , 指数匹配 , XLOOKUP ,或 筛选器 解释一下这个问题(在这里,你可以访问 本条 ).
  • 此外。 VLOOKUP 只返回 首先 如果有一个以上的值符合 查找_值 在这些情况下,你可以使用 筛选器 函数来获取所有的值(在这里,你可以访问 本条 ).

如何在Excel的多个工作簿中应用VLOOKUP公式

在本节中,我们将讨论如何应用 VLOOKUP 现在,让我们把以下工作簿命名为 模拟考试分数 此外,在该工作簿中,还有 工作表也是如此,它们是 第一周,第二周 ,以及 第三周 .

在这个时候,我们想比较一下考生的初试和复试分数。 首先,我们找到了复试分数。 在这里,你可以通过以前的任何一种方法找到它。 现在,我们将从另一个工作簿中提取初试分数。

  • 因此,在以下公式中写下 D5 细胞。
=IFERROR(VLOOKUP(B5,'[Mock Test Marks.xlsx]Week 1'!$B$5:$D$10,2,FALSE),IFERROR(VLOOKUP(B5,'[Mock Test Marks.xlsx]Week 2'!$B$5:$D$10,2,FALSE),IFERROR(VLOOKUP(B5,[Mock Test Marks.xlsx]Week 3)!

这里,当使用这个公式时,你必须同时打开两个工作簿。 否则,你必须使用 填充路径/位置 而不是只使用文件名。

  • 然后,按 进入 .

  • 然后,拖动 填充手柄 图标向下。

最后,你会看到所有候选人的最终和初步笔试分数。

练习部分

现在,你可以自己练习所解释的方法。

总结

使用这些方法,你可以用 VLOOKUP Excel的函数作为一个公式,从工作簿中的多个工作表中提取数据。 那么,你还有其他问题吗? 欢迎向我们提问。

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.