跳至内容

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

Google Sheets 统计学入门

4小时
47.1K
学习如何利用电子表格中的统计技术,更有效地处理数据并提取洞察。
查看详情Right Arrow
开始课程
查看更多Right Arrow