跳至内容

Google 表格中的 VLOOKUP():用法与示例

学习如何在 Google 表格中使用 VLOOKUP(),在数秒内从大型数据集中搜索、查找并提取数据。
更新 2026年5月4日  · 10分钟

VLOOKUP() 是 Google 表格中的一个函数,用于在某一列中搜索一个值,并返回同一行中另一列的匹配值。您提供要查找的内容,指定查找位置,它就会返回所需数据。

当您处理大型数据集、手动查找与匹配数据耗时过长时,它尤其有用。只要需要用共享的键值把两张表连接起来,VLOOKUP() 就是首选函数。

在本指南中,您将学习它的语法、分步用法、导致结果不正确的常见原因,以及何时选择 INDEX MATCH()XLOOKUP() 等替代方案。

Google 表格中 VLOOKUP() 的语法是什么?

VLOOKUP() 的语法为:

=VLOOKUP(search_key, range, index, [is_sorted])

其中:

  • search_key 是您要查找的值

  • range 是进行搜索的数据表区域

  • index 是用于返回结果的列序号

  • [is_sorted] 用于定义是否需要精确匹配

如何在 Google 表格中进行 VLOOKUP()?

在 Google 表格中使用 VLOOKUP()

  1. 确定要查找的值:可以是 ID、姓名或任何唯一值。

  2. 确定表格区域:确保包含查找值的列是该区域的第一列。

  3. 选择要返回的数据:即包含结果的列(例如姓名、价格、状态)。

  4. 在新单元格中输入 VLOOKUP() 公式:引用查找值、表格区域以及要返回的列。

  5. 选择精确或近似匹配(FALSETRUE:大多数情况下,为避免错误结果,建议使用精确匹配(后文详述)。

如果您有如下表格:

A(ID)

B(姓名)

101

George

102

Sarah

103

Lily

想要查找 ID 102 对应的姓名,可以使用:

=VLOOKUP(102, A2:B4, 2, FALSE)

该公式指示 Google 表格:

  • 在 A 列查找 102
  • 返回 B 列的值
  • 执行精确匹配

结果将得到 Sarah。

Google 表格中 VLOOKUP 的示例。

VLOOKUP() 示例。图片作者自制。

VLOOKUP() 的工作原理(逐步逻辑)

VLOOKUP() 遵循简单的纵向搜索流程。它总是从所选区域的第一列开始,自上而下逐行扫描,直到找到第一个匹配项。

一旦找到匹配,它会停留在同一行,然后横向移动到您指定的列并返回该值。

其逐步过程如下:

  • 从区域的第一列开始
  • 沿该列向下搜索
  • 找到第一个匹配值
  • 沿同一行横向移动
  • 从指定列返回数据

假设您要查找员工 ID E1007 的职位名称,可使用以下公式:

=VLOOKUP("E1007", A:G, 5, FALSE)

Google 表格中的 VLOOKUP

Google 表格中的 VLOOKUP()。图片作者自制。

该公式将:

  • 在 A 列查找 E1007

  • 沿同一行横向移动

  • 返回第 5 列(职位)

  • 给出结果 Software Engineer。

注意VLOOKUP() 只能从左向右搜索。如果查找列不是区域中的第一列,函数将无法工作。此时,您需要重新排列数据或使用其他函数。我们稍后会介绍。

VLOOKUP() 中的精确匹配 vs 近似匹配

精确匹配仅在值完全一致时返回结果。近似匹配在找不到精确值时返回最接近的可用值,通常基于已排序的数据。

VLOOKUP() 中,这由最后一个参数控制。最后一个参数为 FALSE 或 TRUE,很多人会弄错,因为 TRUE 看起来无害,但事实并非如此。

  • FALSE 表示仅精确匹配。如果值不存在,返回 #N/A,这其实是有帮助的。
  • TRUE 在没有精确匹配时返回最接近且低于它的值,听起来像兜底,但更准确地说是“静默的错误答案”。它还假定数据已排序;若未排序,结果不确定。

建议仅在分层查找(如税率区间、成绩等级带)这类“设计即近似”的场景下使用 TRUE。其他情况下请使用 FALSE。

精确匹配(FALSE)

这会告诉 VLOOKUP():“只有在找到这个精确值时才返回结果。” 例如,公式 =VLOOKUP("E1005", A:G, 7, FALSE) 会查找 E1005,从第 7 列返回薪资,得到 90000

如果该值不存在,会得到 #N/A 错误。

在 Google 表格的 VLOOKUP 中,精确匹配找不到值会报错

VLOOKUP() 的精确匹配。图片作者自制。

近似匹配(TRUE)

这会告诉 VLOOKUP():“如果找不到精确匹配,就返回最接近且低于它的值。” 这听起来有用——有时确实如此,但有时会悄悄给出错误答案。

例如,我们的数据集中没有 E1011。最后一个员工 ID 是 E1010。因此使用公式 =VLOOKUP("E1011", A:G, 7, TRUE) 时,VLOOKUP() 不会返回错误,而是返回最接近且较小的匹配 E1010 的值。单元格会显示 88000

因此即便缺少 E1011,由于 TRUE 允许近似匹配,VLOOKUP() 仍然会给出结果。

Google 表格中 VLOOKUP 的近似匹配。

VLOOKUP() 的近似匹配。图片作者自制。

现在设想同样的数据被打乱了顺序,而我在公式中输入一个存在的员工 ID,如:=VLOOKUP("E1011", A:G, 7, TRUE)

这一次,由于查找列未排序且近似匹配依赖已排序的数据,公式会返回错误的薪资。

在 Google 表格中,由于列表未排序,VLOOKUP 近似匹配返回错误。

VLOOKUP() 的近似匹配因列表未排序而出错。图片作者自制。

VLOOKUP() 的常见错误与修复方法

来看一下使用 VLOOKUP() 时最常见的一些问题及其解决方法:

#N/A 错误

#N/A 错误表示 VLOOKUP() 未能找到您所请求的值。

假设公式为:=VLOOKUP("E9999", A:G, 7, FALSE)

如果 E9999 不在该区域的第一列,公式会返回 #N/A

若表中该值的输入方式不同(如多余空格或文本格式问题),也会发生这种情况。

修复方法:

  • 确保该值存在于区域的第一列

  • 尽可能使用正确的单元格引用,而非手动输入值

  • 如果硬编码文本值,请加上引号

  • 去除数据中的前后空格

  • 仅在需要精确匹配时使用 FALSE

列序号错误

列序号告诉 VLOOKUP() 要从所选区域的哪一列返回结果。如果序号过大,公式将返回 #REF!

例如 =VLOOKUP("E1005", A:G, 8, FALSE) 会返回 #REF!,因为 A:G 只有 7 列。

在 Google 表格的 VLOOKUP 中,列序号错误会报错。

列序号错误导致报错。图片作者自制。

如果列号有效但指向了错误的列,也会得到错误结果。

例如:

=VLOOKUP("E1005", A:G, 5, FALSE)

这将返回职位而非薪资。

修复方法:

  • 从所选区域的第一列开始计数
  • 检查列号是否与要返回的值相匹配
  • 确保该列存在于区域内

近似匹配问题

当您使用 TRUE 时,VLOOKUP() 会查找最接近且较低的匹配,而不是要求精确匹配。

如果输入 =VLOOKUP("E1011", A:G, 7, TRUE) 而数据集中没有 E1011,公式不会报错,而是返回属于 E101088000

该结果看起来“像是对的”,但并非精确匹配。

修复方法:

  • 需要精确结果时请使用 FALSE

  • 仅在数据已排序且可接受近似结果时使用 TRUE

区域问题

当所选区域与公式的意图不匹配时,VLOOKUP() 也可能无法工作。

例如,=VLOOKUP("E1005", A:C, 7, FALSE) 会返回 #REF!,因为 A:C 只有 3 列,但公式请求第 7 列。

另一个常见问题是查找列不是区域中的第一列。

看这个公式:

=VLOOKUP("E1005", B:G, 7, FALSE)

此处区域的第一列是 B 列,而非 A 列。由于 VLOOKUP() 只搜索所选区域的第一列,因此无法找到 E1005

修复方法:

  • 确保查找列是区域中的第一列
  • 确保区域包含您要返回的列
  • 在确定公式前仔细检查所选区域

在 Google 表格的 VLOOKUP 中,错误的区域会报错

错误的区域导致报错。图片作者自制。

在 Google 表格中跨工作表使用 VLOOKUP()

您可以通过在区域前添加工作表名称,使用 VLOOKUP() 从其他工作表提取数据。

其格式如下:

=VLOOKUP(search_key, SheetName!range, index, FALSE)

SheetName! 用于告诉公式在哪个工作表中搜索。

假设数据存放在名为 Employees 的工作表中,而您正在另一个工作表中工作。要查找员工 ID E1005 的部门,可使用:

=VLOOKUP("E1005", Employees!A:G, 4, FALSE)

其中:

  • Employees!A:G 表示在 Employees 工作表中查找

  • 4 返回 Department 列

该公式会返回 E1005 的部门。

在 Google 表格的 VLOOKUP 中引用其他工作表。

在 VLOOKUP() 中引用其他工作表。图片作者自制。

当工作表名称包含空格时

如果工作表名称包含空格,请用单引号包裹,如下所示:

=VLOOKUP("E1005", 'Employee Data'!A:G, 7, FALSE)

如果不加引号,公式将无法工作。

Google 表格中 VLOOKUP() 与 INDEX MATCH 的比较

VLOOKUP() 在固定列内搜索并基于位置返回数据,而 INDEX MATCH 通过直接使用行与列引用来查找,因此即使表格结构变化也能正常工作。

VLOOKUP:写起来快,但容易“折断”

您已经看到 =VLOOKUP("E1005", A:G, 7, FALSE) 能够查找 E1005 的薪资。

它在以下情况下表现良好:

  • 查找列在左侧
  • 表格结构不发生变化

一旦结构变化,问题就来了。

例如:

  • 您插入了新列
  • 薪资列从第 7 列移到了第 8 列
  • 公式仍然使用 7

现在它会在不报错的情况下返回错误的值。

INDEX MATCH:更长,但更稳

INDEX MATCH 实现同样的查找:

=INDEX(G:G, MATCH("E1005", A:A, 0))

其中:

  • MATCH() 在 A 列中找到 E1005 的位置

  • INDEX() 从 G 列的该位置返回值

该方法不依赖列序号,即使表格变化也能继续工作。

与 VLOOKUP 相比,INDEX MATCH 更好地处理数据

INDEX MATCH 比 VLOOKUP() 更稳健。图片作者自制。

真正有用的场景

当数据不是从左到右排列时,请使用 INDEX MATCH。假设A 列包含员工 ID,而C 列包含姓氏。如果您想按姓氏查找并返回员工 ID,这是一个从右到左的查找。

VLOOKUP() 在不改变表格结构的情况下无法做到,但 INDEX MATCH 可以直接处理:

=INDEX(A:A, MATCH("Wilson", C:C, 0))

无需重新排列数据。

Google 表格中 VLOOKUP() 与 XLOOKUP 的比较

VLOOKUP() 受限于固定结构,而 XLOOKUP() 可在任意方向进行查找。它于 2022 年加入 Google 表格,现在在许多场景下更合适。

假设您想通过姓氏 Wilson 查找员工 ID。这是一个从右到左的查找。VLOOKUP() 需要重排表格才能实现,而 XLOOKUP() 可以直接完成:

=XLOOKUP("Wilson", C:C, A:A)

该公式:

  • 在 C 列(姓氏)中搜索
  • 返回 A 列(员工 ID)

Google 表格中的 XLOOKUP

Google 表格中的 XLOOKUP()。图片作者自制。

XLOOKUP() 更好的原因在于它:

  • 可在任意方向工作(左或右)
  • 不使用列序号
  • 默认返回精确匹配
  • 在未找到匹配时允许自定义输出

结语

如果只能给一条建议:把 VLOOKUP() 用在您真正关心的表格上,而不是练习用的表。数据重要时,错误的“杀伤力”不一样。第一次被 TRUE 悄悄算出别人错误薪资时,您就会记住 FALSE 存在的意义。

熟悉之后,尝试不同的匹配类型、调整区域,并留意何时结果开始变得不合理。通常这就是该换用更灵活的 INDEX MATCH()XLOOKUP() 的时机。

FAQs

`VLOOKUP()` 可以配合通配符使用吗?

可以。使用精确匹配时,您可以在搜索键中使用 *(任意数量字符)和 ?(单个字符)。

例如,=VLOOKUP("E10*", A:G, 2, FALSE)

`VLOOKUP()` 能在 Google 表格中进行区分大小写的搜索吗?

不可以。VLOOKUP() 不区分大小写。它会把 “apple” 和 “Apple” 视为相同的值。若要执行区分大小写的查找,需要使用 FILTER()EXACT() 等函数。

为什么 `VLOOKUP()` 有时会返回空白结果?

当匹配到的单元格为空时会出现这种情况,表示公式本身运行正确,但没有可显示的数据。

`VLOOKUP()` 可以引用命名区域吗?

可以。您可以不使用 A:G,而是为区域命名(例如 EmployeeData),并在公式中使用该名称。

示例如下:

=VLOOKUP("E1005", EmployeeData, 7, FALSE)

主题

在 DataCamp 学习 Google 表格

Courses

Introduction to Statistics in Google Sheets

4小时
46.7K
Learn how to leverage statistical techniques using spreadsheets to more effectively work with and extract insights from your data.
查看详情Right Arrow
开始课程
查看更多Right Arrow