如要搜索数据中的信息,请使用 LOOKUP 函数,例如:
虽然执行这些函数通常需要一些时间,但本文介绍了如何提升 LOOKUP 性能并减少使用的计算能力。
将对范围进行排序与 LOOKUP 函数搭配使用如要更高效地进行排序,请使用对范围进行排序,而非 SORT 函数:
- 选择单元格或列。
- 在顶部的任务栏中,依次点击数据 对范围进行排序。
- 根据需要选择以下任一选项:
- 按照 [最左边的列] 对范围进行排序(A 到 Z)。
- 按照 [最左边的列] 对范围进行排序(Z 到 A)。
- 高级范围排序选项:一次按多列分层进行排序。
提示:“对范围进行排序”功能会先对数据进行排序,然后将已排序的数据发送到 VLOOKUP 函数。
了解错误做法:
重要提示:下一个示例展示了 SORT 函数的不当用法:
=VLOOKUP(search_key, SORT(A1:B10, 1), 2)
在此示例中,SORT 嵌套在 VLOOKUP 函数中。每当已排序范围中的数据发生变化时,SORT 函数都会再次检查所有数据并运行新的 SORT 函数,这是不必要的。
提示:理想情况下,应该只对一组数据运行一次 SORT 函数。如有需要,您可以引用它。
如要加快计算速度,请移除数据集中的重复数据:
- 选择所有相关的列和行。
- 在顶部的任务栏中,依次点击数据 数据清理 移除重复内容。
- 选择要分析的列。
- 点击移除重复内容。
提示:如果一组数据的列或行中包含许多重复值,则可能会降低计算速度。
LOOKUP 函数:
- 无法智能地检测重复值
- 搜索整个数据集,包括所有不匹配的重复值
如要在计算机上本地运行 LOOKUP 计算,请先将数据导入您的电子表格:
- 使用 IMPORTRANGE 将数据提取到 LOOKUP 所在的电子表格的空白范围。详细了解 IMPORTRANGE。
- 在 LOOKUP 函数中,引用导入数据作为您的范围。
了解错误做法:
重要提示:下一个示例展示了 IMPORTRANGE 函数的不当用法:
=VLOOKUP(search_key, IMPORTRANGE(spreadsheet_url, range_string), index, [is_sorted])
在此示例中,IMPORTRANGE 嵌套在 LOOKUP 函数中。每次运行 LOOKUP 时,系统都会先执行 IMPORTRANGE 来提取数据,然后对提取的数据执行 LOOKUP 函数。
提示:请尽量不要将任何函数嵌套在 LOOKUP 函数中。否则,每次运行 LOOKUP 函数时,嵌套的函数就会在 LOOKUP 内执行额外的计算。
如要提高 Google 表格的计算速度,请使用 IF 语句来跳过重复值,例如 N/A、#ERROR、REF# 或空白单元格。
了解错误做法:
重要提示:下一个示例展示了 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。”
虽然 VLOOKUP 稍快一些,但 INDEX 和 MATCH 函数可以更灵活地将 LOOKUP 工作流分为较小的几个部分。这样一来,您就可以重复使用之前的结果,从而节省时间。
了解错误做法:
例如,为了让 VLOOKUP 在此表格中查找“Apple”的“Price”和“Quantity”,您必须使用 2 个单独的 VLOOKUP 公式:
=VLOOKUP("Apple", $A$1:$C$4, 2, FALSE)
此 VLOOKUP 在内部执行 2 个步骤:
- 查找“Apple”的位置。
- 前往第二列搜索“Apple”的“Price”。
=VLOOKUP("Apple", $A$1:$C$4, 3, FALSE)
此 VLOOKUP 在内部执行 2 个步骤:
- 查找“Apple”的位置。
- 前往第三列搜索“Apple”的“Quantity”。
在上述 2 个公式中,第 1 步是相同的:在列表中查找“Apple”的位置。不过,上述两个公式中的第 2 步不能同时运行,因为 VLOOKUP 是具有单一输出结果的单个函数。
因此,如果您运行 VLOOKUP 来查找同一项内容的不同信息,则必须执行第 1 步两次。这会增加计算时间。
了解如何操作:
结合使用 MATCH 和 INDEX 可以节省时间。这会将第 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)
在此示例中,您使用 INDEX 和 MATCH 执行一次第 1 步和两次第 2 步,共执行 3 个计算步骤。如果您改用 VLOOKUP,则会使用 2 个 VLOOKUP 函数,执行 4 个步骤,这需要更多时间和更多计算资源。
您使用的 VLOOKUP 函数越多,效率提高得越多。在许多其他情况下,您可以重复使用 MATCH 结果来节省时间。