VLOOKUP

 
如果您在电子表格中有已知的信息,可以使用 VLOOKUP 按行搜索相关信息。例如,如果您想买一个橙子,可以使用 VLOOKUP 搜索其价格。
VLOOKUP formula example
BigQuery 中的 VLOOKUP 函数

纵向查找。在搜索列中找到匹配值时,返回相应值在数据列中的对应值。

用法示例

VLOOKUP("Apple",table_name!fruit,table_name!price)

语法

VLOOKUP(search_key, range, index, is_sorted)

  • search_key(搜索键值):要在搜索列中搜索的值。
  • search_column(搜索列):要搜索的数据列。
  • result_column(结果列):结果值所在的数据列。
  • is_sorted(已排序):[可选] 查找 search_key 的匹配值的方式。
    • FALSE:这表示完全匹配,建议选择此值。
    • TRUE:这表示近似匹配,如果 is_sorted(已排序)未指定,则此值为默认值。
      提示:在使用近似匹配之前,请对搜索键值进行升序排序。否则,您可能会收到错误的返回值。了解您可能会遇到返回值错误的原因

提示如需在 BigQuery 中实现更灵活的数据库查询,请使用 XLOOKUP

语法

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

输入

  1. search_key(搜索键值):范围第一列中要搜索的值。
  2. range(范围):要搜索的上限值和下限值。
  3. index(编号):包含范围的返回值的列编号。编号必须是正整数。
  4. is_sorted(已排序):可选输入。选择一个选项:
    • FALSE 表示完全匹配。这是推荐值。
    • TRUE 表示近似匹配。如果 is_sorted(已排序)未指定,则此值为默认值。
      重要提示:在使用近似匹配之前,请对搜索键值进行升序排序。否则,您可能会收到错误的返回值。了解您可能会遇到返回值错误的原因

返回值

所选 range(范围)中的第一个匹配值。
技术详情:
示例:
=VLOOKUP(G9, B4:D8, 3, FALSE)
=VLOOKUP("Apple", B4:D8, 3, TRUE)
输入 说明
search_key
这是您在 range(范围)的第一列中搜索的值。如果您希望没有错误值,搜索键值必须位于 range(范围)的第一列中。也支持使用单元格引用。
执行简单的检查操作:如果 search_key(搜索键值)位于 B3,则 range(范围)应从 B 列开始。
range
这是 range(范围),其中:
  • 该函数会在第一列中搜索指定的搜索键值。
  • VLOOKUP 会返回按 index(编号)指定的列中的值。您也可以使用命名的范围。
如需返回非错误值,搜索键值必须位于 range(范围)的第一列中。
执行简单的检查操作:如果 search_key(搜索键值)位于 B3,则 range(范围)应从 B 列开始。
index
也称为“列号”。这是包含返回值的 range(范围)中列的编号。
  • 可能的最小编号为 1。
  • 可能的最大编号是该 range(范围)中的最大列数。
您设置范围后,VLOOKUP 只会搜索“搜索键值”列(当编号设为 1)或更靠右的列。
提示:使用 VLOOKUP 时,假设 range(范围)中的列从左到右编号,且从 1 开始。
is_sorted
这是一个可选输入。可用选项包括 TRUEFALSE
  • 如果 is_sorted(已排序)为 TRUE,则 VLOOKUP 会使用近似匹配。
    重要提示:在使用近似匹配之前,请对搜索键值进行升序排序。否则,可能会返回意外的值。了解您可能会遇到返回值错误的原因
  • 如果 is_sorted(已排序)为 FALSE,则 VLOOKUP 会使用完全匹配。

  • 如果 is_sorted(已排序)未指定,则默认为 TRUE
我们强烈建议您:
  • is_sorted(已排序)使用 FALSE,这样无论是否对“搜索键值”列进行排序,其结果都会保持一致。
  • 始终指定 is_sorted(已排序)可以提高可读性,即使此输入项是可选项也是如此。

 

输出 说明
返回值
这是 VLOOKUP 根据您的输入返回的值。每个 VLOOKUP 函数只有一个返回值。
  • 如果有多个匹配的搜索键值,则系统会从“搜索键值”列中找到第一个匹配的相关搜索键值,然后返回“返回值”列中对应的值。
  • 如果返回“N/A”,则表示找不到值。
如果您遇到非预期值或错误,如“#N/A”或“#VALUE!”,请开始进行问题排查。如果您想用其他值替换 #N/A,请详细了解如何在 VLOOKUP() 中使用 IFNA()

VLOOKUP 基本示例:

使用 VLOOKUP 查找不同的搜索键值

使用 VLOOKUP 查找“Orange”和“Apple”的价格。

VLOOKUP on different search keys example
说明:

使用 VLOOKUP 时,您可以使用不同的搜索键值,如“Apple”和“Orange”。

如需返回非错误值,这些搜索键值必须位于 range(范围)的第一列中。如果您不想为搜索键值填充值,也可以使用单元格引用,例如“G9”。
search_key(搜索键值)为“Orange”
=VLOOKUP("Orange", B4:D8, 3, FALSE)
返回值 = $1.01
search_key(搜索键值)为“Apple”
=VLOOKUP("Apple", B4:D8, 3, FALSE)
返回值 = $1.50
search_key(搜索键值)使用“Apple”的单元格引用 (G9)
=VLOOKUP(G9, B4:D8, 3, FALSE)
返回值 = $1.50

使用 VLOOKUP 查找不同列编号

使用 VLOOKUP 在第二个编号列中查找“Orange”的数量。
VLOOKUP on different column indexes example
说明:
使用 VLOOKUP 时,假设 range(范围)中的列从左到右编号,且从 1 开始。如需查找目标信息,您必须指定其列编号。例如,第 2 列表示数量。
Index(编号)为 2
找出橙子的数量,也就是 range(范围)的第二列。
=VLOOKUP(G3, B4:D8, 2, FALSE)
返回值 = 5

VLOOKUP 完全匹配或近似匹配

  • 使用 VLOOKUP 完全匹配查找确切 ID。
  • 使用 VLOOKUP 近似匹配查找近似 ID。
VLOOKUP exact match or approximate match example
说明:
当您搜索最佳匹配而非完全匹配时,请使用近似匹配或 is_sorted(已排序)设为 TRUE
如果您要搜索的 ID 为 102,但其在表格中并不存在,则近似匹配会退一步向您提供近似的 101 作为结果。这是因为在“搜索键值”列中,101 是最接近且小于 102 的值。
近似匹配会从上向下搜索“搜索键值”列,直到找到大于搜索键值的值。然后,它会停在更大值前的行,然后从该行的“返回值”列中返回值。这意味着,如果您的“搜索键值”列没有按升序排序,您很可能会收到错误的返回值。
重要提示:在使用近似匹配之前,请对搜索键值进行升序排序,以便返回正确的值。否则,可能会返回意外的值。
当您搜索完全匹配的值时,例如 is_sorted(已排序)为 FALSE,则会返回完全匹配的值。例如,“ID = 103”的水果名称是“Banana”。如果没有完全匹配的值,您会收到“#N/A”错误。由于结果更具有预测性,我们建议您使用完全匹配。
完全匹配
=VLOOKUP(G6, A4:D8, 2, FALSE)
返回值 =“Apple”
近似匹配
=VLOOKUP(G3, A4:D8, 2, TRUE)
OR(或)
=VLOOKUP(G3, A4:D8, 2)
返回值 =“Banana”

VLOOKUP 常见应用场景

替换 VLOOKUP 中的错误值

如果您的搜索键值不存在,您可能需要替换 VLOOKUP 返回的错误值。在这种情况下,如果您不想使用“#N/A”,可以使用 IFNA() 函数替换“#N/A”。详细了解 IFNA()
Replace error value from VLOOKUP example
一开始,VLOOKUP 会返回“#N/A”,因为“Fruit”列中不存在搜索键值“Pencil”。
IFNA() 会将“#N/A”错误替换为函数中指定的第二个输入项。在我们的示例中,其为“NOT FOUND”。
=IFNA(VLOOKUP(G3, B4:D8, 3, FALSE),"NOT FOUND")
返回值 =“NOT FOUND”

提示:如果您想替换其他错误(例如“#REF!”),请详细了解 IFERROR()

在 VLOOKUP 中使用多个条件

VLOOKUP 无法直接运用多个条件。您可以改为创建新的辅助列,以在 VLOOKUP 中直接运用多个条件,从而合并多个现有列。
VLOOKUP with multiple criteria example
1. 如果您使用“&”将“First Name”和“Last Name”合并,则可以创建“Helper”列。 =C4&D4 并将其从 B4 向下拖动到 B8,即可得到“Helper”列。
2. 将单元格引用 B7 (JohnLee) 用作搜索键值。
=VLOOKUP(B7, B4:E8, 4, FALSE)
返回值 =“Support”

在 VLOOKUP 中使用通配符或部分匹配项

VLOOKUP 中,您还可以使用通配符或部分匹配项。您可以使用以下通配符:
  • 问号“?”可匹配任何单个字符。
  • 星号“*”可匹配任何字符序列。
如需在 VLOOKUP 中使用通配符,您必须使用完全匹配:“is_sorted(已排序)设为 FALSE”。
VLOOKUP with wildcard example
“St*”用于匹配任何以“St”开头的字符,而不考虑字符数,例如“Steve”“St1”“Stock”或“Steeeeeeve”。
=VLOOKUP("St*", B4:D8, 3, FALSE)
返回值 =“Marketing”

排查错误和最佳做法:

返回值有误
  • 返回非预期值:如果您将 is_sorted(已排序)设置为 TRUE,但此范围中的首列未按数字或字母升序排序,则要将“is_sorted”(已排序)更改为 FALSE

  • VLOOKUP 提供第一个匹配项VLOOKUP 仅返回第一个匹配项。如果您有多个匹配搜索键值,则会返回某个值,但此值可能不是预期的值。
  • 带有开头/结尾空格/空白的数据:有时,包含开头/结尾空格的值可能看起来相似,但 VLOOKUP 会将其视为不同的值。例如,以下值对 VLOOKUP 来说是不同的:
    • “ Apple”
    • “Apple ”
    • “Apple”
为了获得您期望的结果,请在使用 VLOOKUP 之前移除空格。
如需了解详情,请参阅我们的最佳做法部分
#N/A
  • 如果使用近似匹配或 is_sorted(已排序)设为 TRUE,且 VLOOKUP 中的搜索键值小于第一列中的最小值,则 VLOOKUP 会返回“#N/A”。
  • 如果使用完全匹配或 is_sorted(已排序)设为 FALSE,则在第一列中找不到与 VLOOKUP 中的搜索键值完全匹配的值。如果您不希望在第一列中找不到搜索键值时出现“#N/A”,则可以使用函数 IFNA()
#REF!
您可能会错误地指定一个 range(范围),包含多于 range(范围)最大列数的数字。为避免出现这种情况,请确保您:
  • 计算所选 range(范围)(而非整个表格)中的列数。
  • 从 1 开始,而不是从 0 开始。
#VALUE!
如果收到“#VALUE!”错误,您可能:
  • index(编号)错误输入了文本或列名称。
  • index(编号)输入小于 1 的数字。index(编号)必须至少等于 1,并且小于 range(范围)中的最大列数。VLOOKUP 只会在“搜索键值”列中进行搜索(当 index[编号] 设为 1),或更靠右的列。

重要提示index(编号)仅接受数字。

#NAME?
  • search_key(搜索键值)是文本数据时,您可能会忘记在搜索键值中添加引号。
最佳做法

 

待办事项 原因
range(范围)使用绝对引用
您应该使用:
  • VLOOKUPrange(范围)使用绝对引用
  • VLOOKUP(G3, $B$3:$D$7, 3, FALSE)
您不应使用:
  • VLOOKUP(G3, B3:D7, 3, FALSE)
这样可以防止在复制或向下拖动 range(范围)时发生不可预知的更改。
使用近似匹配时,例如 is_sorted(已排序)设为 TRUE,第一列应按升序排序。 如果您使用近似匹配或 is_sorted(已排序)设为 TRUE,则必须对第一列进行升序排序。否则,您很有可能会收到错误的返回值。详细了解如何排序
请在使用 VLOOKUP 之前清理您的数据
在使用 VLOOKUP 之前,请记得清理数据。带有开头/结尾空格/空白的数据可能会导致 VLOOKUP 返回不可预测的值。以下是一些带有开头/结尾空格/空白的数据的常见错误:
  • 开头空格:“ apple”
  • 结尾空格:“apple ”
  • 空白或空格:“”和“ ”不相同
如需去除多余的开头空格和结尾空格,您可以使用数据 接着点击 数据清理 接着点击 去除多余空格
不要将数字或日期值存储为文本
确保 VLOOKUP 范围第一列中的日期或数值(例如“搜索键值”列)未存储为文本值。您可能会收到意外的返回值。
  1. 在表格顶部,选择您的“搜索键值”列。
  2. 因此点按格式菜单 接着点击 数字
  3. 根据所需数据类型选择选项:
    • 日期
    • 数字

需要更多帮助?

请尝试以下步骤:

true
访问学习中心

您在单位或学校使用 Google 文档等 Google 产品吗?欢迎使用功能强大的提示、教程和模板。了解如何在不安装 Office 的情况下处理 Office 文件、创建动态项目计划和团队日历,以及自动整理收件箱等。

搜索
清除搜索内容
关闭搜索框
主菜单
3708239985838672533
true
搜索支持中心
true
true
true
true
true
35
false
false