如何提升 LOOKUP 性能

如要搜索数据中的信息,请使用 LOOKUP 函数,例如:

虽然执行这些函数通常需要一些时间,但本文介绍了如何提升 LOOKUP 性能并减少使用的计算能力。

将对范围进行排序与 LOOKUP 函数搭配使用

如要更高效地进行排序,请使用对范围进行排序,而非 SORT 函数:

  1. 选择单元格或列。
  2. 在顶部的任务栏中,依次点击数据 接着点按 对范围进行排序
  3. 根据需要选择以下任一选项:
    • 按照 [最左边的列] 对范围进行排序(A 到 Z)
    • 按照 [最左边的列] 对范围进行排序(Z 到 A)
    • 高级范围排序选项:一次按多列分层进行排序。

提示:“对范围进行排序”功能会先对数据进行排序,然后将已排序的数据发送到 VLOOKUP 函数。

了解错误做法:

重要提示:下一个示例展示了 SORT 函数的不当用法:

=VLOOKUP(search_key, SORT(A1:B10, 1), 2)

在此示例中,SORT 嵌套在 VLOOKUP 函数中。每当已排序范围中的数据发生变化时,SORT 函数都会再次检查所有数据并运行新的 SORT 函数,这是不必要的。

提示:理想情况下,应该只对一组数据运行一次 SORT 函数。如有需要,您可以引用它。

在使用 LOOKUP 函数之前移除重复项

如要加快计算速度,请移除数据集中的重复数据:

  1. 选择所有相关的列和行。
  2. 在顶部的任务栏中,依次点击数据 接着点按 数据清理 接着点按 移除重复内容
  3. 选择要分析的列。
  4. 点击移除重复内容

提示:如果一组数据的列或行中包含许多重复值,则可能会降低计算速度。

LOOKUP 函数:

  • 无法智能地检测重复值
  • 搜索整个数据集,包括所有不匹配的重复值
在源数据所在的电子表格中运行 LOOKUP

如要在计算机上本地运行 LOOKUP 计算,请先将数据导入您的电子表格:

  1. 使用 IMPORTRANGE 将数据提取到 LOOKUP 所在的电子表格的空白范围。详细了解 IMPORTRANGE
  2. LOOKUP 函数中,引用导入数据作为您的范围。

了解错误做法:

重要提示:下一个示例展示了 IMPORTRANGE 函数的不当用法:

=VLOOKUP(search_key, IMPORTRANGE(spreadsheet_url, range_string), index, [is_sorted])

在此示例中,IMPORTRANGE 嵌套在 LOOKUP 函数中。每次运行 LOOKUP 时,系统都会先执行 IMPORTRANGE 来提取数据,然后对提取的数据执行 LOOKUP 函数。

提示:请尽量不要将任何函数嵌套在 LOOKUP 函数中。否则,每次运行 LOOKUP 函数时,嵌套的函数就会在 LOOKUP 内执行额外的计算。

使用 IFERROR() 或 IF() 语句跳过某些搜索键

如要提高 Google 表格的计算速度,请使用 IF 语句来跳过重复值,例如 N/A#ERRORREF# 或空白单元格。

了解错误做法:

重要提示:下一个示例展示了 VLOOKUP 函数的不当用法:

在上面的示例中,您可以使用 VLOOKUP 查找 A 列中“Fruit”的“Price”。不过,您的“Fruit”列表中还有许多空白单元格。

即使 B3、B7 和 B9 中的 VLOOKUP 搜索的是空白单元格,Google 表格也会根据 A 列中的所有引用搜索键运行 B2 到 B10 的计算。这些搜索不会返回任何有意义的结果。

了解如何操作:

使用 IF 函数,根据所需的条件跳过这些搜索键,仅在“Fruit”列表中的数据不为空时运行 VLOOKUP

IF 函数会告知 Google 表格,“如果搜索键不为空,则运行 <您的公式>。如果搜索键为空,则不要运行 <您的公式>,而是输出 N/A。”

一般来说,您可以使用任何公式,并且跳过的值可以不为空。这种方法可以节省时间,因为如果排除没有意义的值,就可以避免进行额外的计算。

除非您使用 IF 函数明确指出某个值,否则 Google 表格无法确定该值是否有意义。

=IF(A2 <> value_to_skip, your_formula, "N/A")

提示:上面的 IF 函数会告知 Google 表格,“如果 A2 不等于 <跳过的值>,则运行 <您的公式>。如果 A2 等于 <跳过的值>,则不要运行 <您的公式>,而是输出 N/A。”

详细了解 IF 函数

使用 INDEX 和 MATCH,而非 VLOOKUP

虽然 VLOOKUP 稍快一些,但 INDEXMATCH 函数可以更灵活地将 LOOKUP 工作流分为较小的几个部分。这样一来,您就可以重复使用之前的结果,从而节省时间。

了解错误做法:

例如,为了让 VLOOKUP 在此表格中查找“Apple”的“Price”和“Quantity”,您必须使用 2 个单独的 VLOOKUP 公式:

=VLOOKUP("Apple", $A$1:$C$4, 2, FALSE)

VLOOKUP 在内部执行 2 个步骤:

  1. 查找“Apple”的位置。
  2. 前往第二列搜索“Apple”的“Price”。

=VLOOKUP("Apple", $A$1:$C$4, 3, FALSE)

VLOOKUP 在内部执行 2 个步骤:

  1. 查找“Apple”的位置。
  2. 前往第三列搜索“Apple”的“Quantity”。

在上述 2 个公式中,第 1 步是相同的:在列表中查找“Apple”的位置。不过,上述两个公式中的第 2 步不能同时运行,因为 VLOOKUP 是具有单一输出结果的单个函数。

因此,如果您运行 VLOOKUP 来查找同一项内容的不同信息,则必须执行第 1 步两次。这会增加计算时间。

了解如何操作:

结合使用 MATCHINDEX 可以节省时间。这会将第 1 步和第 2 步分开,以便您根据需要重复使用第 1 步:

1. 使用 MATCH 查找“Apple”的位置:

=MATCH("Apple", $A$2:$A$4, FALSE)

此公式的输出结果为“1”,因为“Apple”位于范围的第 1 位。

2. 使用 INDEX 在第二列中搜索“Apple”的“Price”:

=INDEX($A$2:$C$4, cell_with_MATCH_formula, 2)

此公式的输出结果为“$1”。

如要搜索“Apple”的“Quantity”,您可以重复使用第 1 步,并使用 MATCH 公式来引用相应单元格,这样就无需重新计算该部分。

3. 使用 INDEX 在第三列中搜索“Apple”的“Quantity”:

=INDEX($A$2:$C$4, cell_with_MATCH_formula, 3)

在此示例中,您使用 INDEXMATCH 执行一次第 1 步和两次第 2 步,共执行 3 个计算步骤。如果您改用 VLOOKUP,则会使用 2 个 VLOOKUP 函数,执行 4 个步骤,这需要更多时间和更多计算资源。

您使用的 VLOOKUP 函数越多,效率提高得越多。在许多其他情况下,您可以重复使用 MATCH 结果来节省时间。

相关资源

true
访问学习中心

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

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