跳至主要内容

跨工作表使用 VLOOKUP():Excel 实用指南

了解如何使用 VLOOKUP() 从同一工作簿的另一张工作表提取数据。通过实用示例与排错技巧,稳步提升信心。
· 5分钟 阅读

使用 AI 探索

您是否曾经为在电子表格中手动查找匹配数据而耗费数小时?我有过同样的经历,确实让人沮丧。这就是为什么我要向您展示 VLOOKUP() 如何改变了我使用 Excel 的方式——以及它如何同样帮到您。

在本指南中,您将了解如何使用 VLOOKUP() 来搜索并提取数据,无论这些数据位于同一工作簿的不同工作表,还是完全不同的 Excel 文件中。不过,如果您还不熟悉 Excel 函数,请先从我们的 Introduction to Excel 课程开始,掌握基础知识。

快速答案:如何从另一张工作表使用 VLOOKUP()

以下是在另一张工作表中使用 VLOOKUP() 查找数据的最快方法:

=VLOOKUP(lookup_value, Sheet2!range, col_index, [range_lookup])

关键在第二个参数,您需要引用另一张工作表中的范围。在范围前加上工作表名称和感叹号,如:SheetName!A2:D100

例如,如果您要在 Customers 工作表中查找客户 ID,可以使用以下语法:

=VLOOKUP(A2, Customers!A2:D100, 2, FALSE)

如果工作表名称包含空格,只需像这样用单引号括起来:

=VLOOKUP(A2, 'Customer Data'!A2:D100, 2, FALSE)

为什么要从另一张工作表使用 VLOOKUP() 

VLOOKUP(),如您所知,可让您在表格中搜索某个值,并从指定列返回相关值。 之所以说是列,是因为 VLOOKUP() 中的“V”代表“垂直”。 VLOOKUP() 的妙处在于,当您在一个地方更新信息,另一个地方的信息也会随之更新。也就是说,更新会在所有被引用的位置自动生效。

我之所以会在不同工作表间使用 VLOOKUP(),是因为我会把不同类型的信息存放在不同的位置。这听起来显而易见,但有一个重要的含义:我可以拥有一张专门用于手动录入数据的工作表,从而减少可能潜入的数据错误。掌握从另一张工作表使用 VLOOKUP() 的方法,有助于我维护干净的数据集,避免冗余细节。我能更快地完成工作,也更少出错。

深入了解跨表 VLOOKUP()

在跨工作表使用 VLOOKUP() 的第一步,是确定您将使用什么信息来连接数据。我们称之为查找值或公共字段。它是在两张工作表中都存在、帮助 Excel 进行匹配的数据,并且必须在两张表中保持一致的格式。细微的格式差异,如隐藏空格或不一致的数据类型,都会导致#N/A 错误。

因此,在开始编写 VLOOKUP() 公式之前,请确保查找值在两张表中都存在,数据类型(如文本或数字)一致,并且没有隐藏空格或尾随字符。

拆解 VLOOKUP() 公式

当编写一个从另一张工作表提取数据的 VLOOKUP() 时,主要的调整在 table_array 参数。您必须在范围前添加工作表名称和感叹号(!)。 

假设您有两张工作表:Employee Data(存放数据)和 Salary Data(根据查找值展示每位员工的薪资)。

Excel 中名为 Employee Data 的工作表 1

Employee Data 工作表。作者供图

Excel 中名为 Salary Data 的工作表 2

Salary Data 工作表。作者供图

要将 Employee Data 工作表中的薪资转到 Salary Data 工作表:

  1. 选择您想显示结果的单元格。

  2. 开始输入 VLOOKUP() 公式:=VLOOKUP(

  3. 选择查找值:=VLOOKUP(A2,

  4. 引用另一张工作表(关键步骤):=VLOOKUP(A2, Employee Data!A2:D4,

  5. 完成公式(4 指定列,FALSE 精确匹配):=VLOOKUP(A2, 'Employee Data'!A2:D4, 4, FALSE)

应用上述公式后,您将得到如下结果:

从 Employee Data 工作表提取数据并复制到 Salary Data 工作表

我认为跨表 VLOOKUP() 最常见的错误是工作表名称引用不正确。因此,如果在执行跨表 VLOOKUP() 时遇到问题,请仔细检查公式中的这一部分。

来自另一张工作表的 VLOOKUP() 示例

我们再看一个示例。我有两张工作表——Flavors 和 Total Sale。在 Total Sale 工作表中,我想记录一个月内所有冰淇淋口味的总销售额。

其中,Flavors 工作表如下所示:

Excel 中的 Flavor 工作表

Flavors 工作表。作者供图

而 Total Sale 工作表如下所示:

Excel 中的 Total Sales 工作表

Total Sale 工作表。作者供图

要从 Flavors 工作表获取各口味的总销售额,我在 Total Sale 工作表的 B2 单元格应用以下公式:

=VLOOKUP(A2,Flavors!A:E,5,FALSE)

该公式会查看 A2 中的值,在 Flavors 工作表中进行查找,并在找到匹配项时返回第 5 列的结果。

从一张工作表获取总销售额并复制到另一张工作表

将总销售额从一张工作表提取到另一张。作者供图

排查常见错误

一旦您清楚理解 VLOOKUP() 的工作方式,执行起来会很容易,但仍可能遇到错误。让我们看看它们是什么以及如何处理:

#N/A 错误

令人头疼的 #N/A 错误虽然烦人,但通常在了解原因后就能修复。以下是识别与解决的方法:

  • 数据类型不匹配: 有时查找值在一张表中以文本形式存储,而在另一张表中是数字。即使看起来一样,Excel 也会将其视为不同。

  • 引用不正确: 您可能在错误的位置查找——要么是错误的工作表,要么是错误的单元格范围。请仔细检查工作表名称和单元格范围。确保工作表名称拼写正确,且范围包含所有必要数据。

  • 精确匹配问题:如果您使用 FALSE 进行精确匹配(通常推荐),查找值必须与表中的内容完全一致。请确保没有隐藏空格——您甚至可以用 TRIM() 函数去除它们。

  • 查找值不在第一列:VLOOKUP() 总是在所选范围的第一列查找值。因此,请确保您的查找列是该范围中最左侧的一列。

  • 引用失效: 如果被引用的工作表被重命名、删除或移动,公式会失效并报错。为避免这种情况,请保持被引用的工作表完整不变。

处理跨表引用问题

在跨表查找数据前,请检查格式是否一致。您可以使用 Excel 的 TEXT() 或 VALUE() 函数。例如,可以在 VLOOKUP() 中这样使用 TEXT() 函数:

=VLOOKUP(TEXT(A2,"0"), Sheet2!B2:D10, 3, FALSE)

这将告诉 Excel 将您的查找值按文本处理,如果另一张表也以文本形式存储内容,这会很有帮助。

另外,您也可以用 IF() 公式提供更友好的提示信息,以替代显示 #N/A 错误。方法如下:

基础错误处理: 

=IFERROR(VLOOKUP(A2, Sheet2!B:C, 2, FALSE), "Not Found")

更详细的错误处理: 

=IFERROR(VLOOKUP(A2, Sheet2!B:C, 2, FALSE), 
  "No match found for " & A2)

嵌套错误处理并提供不同消息: 

=IF(ISBLANK(A2),"Please enter a value", IFERROR(VLOOKUP(A2, Sheet2!B:C, 2, FALSE),
"No match found"))

关于如何结合使用 VLOOKUP() 和 IF() 的更多细节,请阅读我的详细教程:How to Combine VLOOKUP() with IF() in Excel。

结语

VLOOKUP() 跨工作表查找是 Excel 中极其强大的功能,适合处理多个数据集的任何人。掌握在公式中添加工作表名称这个简单技巧后,您就能从工作簿中的任意位置提取数据。虽然错误一开始可能令人沮丧,但大多数 VLOOKUP() 问题都归结为简单的数据不匹配,一旦知道该检查什么,就很容易修复。

想要熟练掌握跨表 VLOOKUP(),最佳方式是用您的数据多加练习。从两张工作表之间的简单查找开始,随着信心提升逐步加入错误处理。 如需学习更多进阶技巧,DataCamp 提供多种 Excel 教程 帮助您提升技能。此外,我们的 Excel Fundamentals 技能路径也很适合充实简历。

最后,如果您想进一步了解 VLOOKUP() 的各种细节,请查看我的其他 VLOOKUP() 教程:

Laiba Siddiqui

作者

Laiba Siddiqui

我是内容策略专家,热衷于将复杂主题化繁为简。我曾帮助 Splunk、Hackernoon 和 Tiiny Host 等公司为其受众打造兼具吸引力与信息量的内容。

VLOOKUP 常见问题

VLOOKUP() 与 HLOOKUP() 有何区别?

VLOOKUP() 在垂直列中查找值,而 HLOOKUP() 则在行中进行水平查找。关于 HLOOKUP() 的更多内容,请阅读我们的教程:How to Use HLOOKUP() in Excel.

 
我可以嵌套使用 VLOOKUP() 吗?

可以。为了创建更复杂的公式,您可以在其他函数(如 IF() 或 MATCH())中嵌套 VLOOKUP()。

VLOOKUP() 是否区分大小写?

不可以,VLOOKUP() 不区分大小写。它会将 abc 与 ABC 视为相同的值。

我能在关闭的工作簿上执行 VLOOKUP() 吗?

不可以。VLOOKUP() 需要源工作簿和目标工作簿同时打开才能提取数据。

主题