Excel 中的 LOOKUP() 函数

17 Mar 2025 | 6 分钟阅读

Excel 提供了一个名为 LOOKUP() 的函数来查找数据的近似匹配。它在单行或单列范围内执行粗略匹配查找。然而,LOOKUP() 函数在其自身或其近似匹配值中搜索列/行范围内的值。

例如:当您没有要查找的确切值时,LOOKUP() 函数很有用。因此,我们使用其附近的值来找到我们想要的确切结果。LOOKUP() 函数将帮助我们在一个范围内搜索其确切或附近的匹配项。

MS Excel 中,此函数归类在公式栏中的 查找和引用函数 下。您可以从“公式”选项卡访问它,并在其用户界面中为其各自的字段提供值。您也可以通过其语法直接在公式栏中使用它。除此之外,您还可以将其用于许多其他用途。

LOOKUP() 函数的必要性

让我们举一个场景来理解 Excel 中 LOOKUP() 函数的必要性。例如:我们有一个工作表,其中包含产品 ID、产品名称和价格的列表。这些列包含大量数据。

用户需要查找价格为 829 或接近 829 的产品名称。LOOKUP() 函数将帮助我们实现此结果。我们将使用 LOOKUP() 函数来查找此值的产品名称。

语法

此函数具有非常不同的参数值,其中前两个是必需的,第三个是可选的。

在一些 Excel 教程网站上,您可能会看到 LOOKUP() 函数的另一种语法。第一个语法如上所示,另一个是 -

您可以将此语法视为与没有 [result_vertor] 参数的语法1相同。

参数

Lookup() 函数包含三个参数,所有三个参数对于查找值并返回结果都很重要。

Lookup_value - 此函数的第一个参数是 lookup_value,它保存用户在 lookup_range 中搜索的值。

Lookup_range 或数组 - lookup_range 参数保存我们查找 lookup_value 的单元格范围。这些单元格范围可以是单行或单列。

[result_vector](可选参数)- result_vector 是此函数最重要但可选的参数。它还包含与 lookup_range 对应的单元格范围。

当在 lookup_range 中找到近似匹配时,LOOKUP() 函数从 result_vector 中选择相邻值并将其返回给用户。

返回值

LOOKUP() 函数返回任何类型的数据,具体取决于 LOOKUP() 函数中传递的参数。它可以是数字或字符串。

额外结果

如果 LOOKUP() 函数无法找到我们正在搜索的值 (lookup_value) 的精确匹配项,它将返回 lookup_range 中小于或等于该值的最大值。

result_vector 的用途是什么?

正如我们所知,[result_vector] 是一个可选参数,您是否使用它取决于您的选择。

  • 如果您在 LOOKUP() 函数中提供 result_vertor 参数,则在找到精确或近似匹配时,将从该范围中选择结果值并返回给用户。
  • 如果未向 LOOKUP() 函数提供 [result_vertor] 参数,它将返回在 lookup_range 参数内找到的近似匹配值本身。

要理解 LOOKUP() 函数,通过示例学习它以了解实际工作原理非常重要。我们将在本章后面通过示例了解此参数的用法。

如何使用 LOOKUP() 函数?

我们有几个例子可以通过提供不同的参数值来学习 LOOKUP() 函数。这些例子将帮助您更好地学习它。我们将使用两种语法来查看它们应用于 Excel 数据时将返回什么值。

示例 1:带 [result_vector] 参数

我们有一个工作表,其中包含产品 ID、产品名称和价格的列表。用户想要查找价格为 2589 或接近 2589 的产品名称。我们将使用 LOOKUP() 函数来查找此值的产品名称。

Excel LOOKUP() function

让我们看看如何使用 LOOKUP() 函数实现此结果以及它将如何帮助我们实现此结果。

使用 LOOKUP() 函数的步骤

  1. 在您想要获取结果的单元格中写入以下 LOOKUP() 公式。
    =LOOKUP(2589,C2:C7,B2:B7)
    Excel LOOKUP() function
  2. 现在,只需按键盘上的 Enter 键即可一键获取结果。查看结果产品名称。
    Excel LOOKUP() function
    LOOKUP() 函数发现 2589 接近 2549,这是 扬声器 的价格。因此,它返回扬声器作为结果值。

示例 2:不使用 [result_vector] 参数

如果我们不使用 LOOKUP() 函数中的第三个参数,那么当找到近似值时,它将返回什么给用户是一个大问题。

我们将使用与上述示例中相同的值,以便您可以比较两个结果。

  1. 不使用 [result_vector] 值写入 LOOKUP() 公式,如下所示 -
    =LOOKUP(1289, C2:C7)
    Excel LOOKUP() function
  2. 现在,按 Enter 键获取此公式的结果。请注意,它已返回值 2549,这对应于 扬声器
    Excel LOOKUP() function
    因此,我希望您了解了 LOOKUP() 函数中 [result_vector] 的工作原理和用法,以及 result_vector 如何影响结果。

LOOKUP() 函数的问题

在使用 LOOKUP() 函数处理 Excel 数据时,您可能会遇到问题。有时,它不会返回最接近 lookup_value 的近似值。让我们通过一个例子来看看您可能遇到的 LOOK() 函数的问题类型。

  1. 我们正在寻找价格约为 999 的产品。以这种方式使用 LOOKUP() 公式
    =LOOKUP(999,C2:C7,B2:B7)
    Excel LOOKUP() function
  2. 现在,按 Enter 键获取此公式的结果。请注意,它已返回名为 蓝牙 的产品,其价格为 620。
    Excel LOOKUP() function
    您会注意到,工作产品价格为 999,我们的 lookup_value 也是 999,但它仍然返回蓝牙。
    现在,一个大问题是 - 如果我们正在寻找价格接近 989 的产品。但它返回 扬声器 作为结果值,其价格为 620。然而,无线是正确的,其价格为 999,最接近 989 的近似值。

原因和解决方案

返回不正确的值可能有两个原因

  1. 有时,如果 lookup_range 参数的值未按升序排序,LOOKUP() 函数会返回不正确的值。LOOKUP() 将列视为已排序并选择错误的值作为结果。因此,我们将寻找其解决方案。
  2. 另一个原因是 - 当您将公式从一个单元格复制到另一个单元格时,您可能会遇到这种类型的错误。单元格引用发生变化,可能会导致错误的值。也可能存在其他原因。因此,请避免复制公式。

Excel 提供了一个名为 VLOOKUP() 的函数。您可以将其用作 LOOKUP() 函数的替代。它不需要 lookup_range 值按升序排序。

使用 LOOKUP() 函数时应记住的事项

在 Excel 数据上应用 LOOKUP() 公式时,您应该记住以下事项。

  1. #N/A 错误 - 当 LOOKUP() 函数未能找到您要查找的值的最接近匹配项时,您可能会收到此错误。这可能是因为 -
    • lookup_range 参数中的最小值大于 lookup_value。
    • lookup_range 值未按升序排列。
  2. #REF 错误 - 当公式查找不存在的单元格引用时,会发生此错误。这可能是因为 -
    • 您之前创建了公式,并且在输入 LOOKUP() 后删除了单元格。
    • 当您将函数从一个单元格复制到另一个单元格时,公式会变得无效并生成此错误。

因此,在使用 Excel 数据和 LOOKUP() 公式时,应避免这些问题。

验证不同的结果值

根据此 Excel 电子表格,我们将分析 LOOKUP() 函数中不同 lookup_value 的结果。

Excel LOOKUP() function
公式结果描述
=LOOKUP(449, C2:C7, B2:B7)#N/ALookup_value 小于 C2:C7 (lookup_range) 中存在的所有值。
=LOOKUP(620, C2:C7, B2,B7)蓝牙它找到精确匹配并从 B 列返回值。
=LOOKUP(620, C2:C7)620它找到 lookup_value 的精确匹配并从 C 列返回。

下一个主题MS Excel 成绩公式