LOOKUP 函数


本文介绍 Microsoft Excel 中 LOOKUP 函数的公式语法和用法。

当您需要查询一行或一列并查找另一行或列中的相同位置的值时,会使用其中一个查找和引用函数 LOOKUP。

例如,假设你知道某个汽车部件的部件号,但是不知道价格。 如果在单元格 H1 中输入汽车部件号,可在单元格 H2 中使用 LOOKUP 函数返回价格。

LOOKUP 函数的用法示例

可使用 LOOKUP 函数搜索一行或一列。 在上面的示例中,我们在 D 列中搜索价格。

可使用 VLOOKUP 搜索一行或一列,或搜索多行和多列(如表)。该函数是 LOOKUP 的大幅度改进版本

LOOKUP 有两种使用方式:向量形式和数组形式

  • 向量形式:可使用 LOOKUP 的这种形式在一行或一列中搜索值。 如果要指定包含要匹配的值的区域,请使用这种形式。 例如,如果要在 A 列中向下搜索值到第 6 行。

    向量的示例

  • 数组形式:强烈建议使用 VLOOKUPHLOOKUP,不要使用数组形式。请观看此视频,了解如何使用 VLOOKUP。提供数组形式是为了与其他电子表格程序兼容,这种形式的功能有限。

    数组是要搜索的行和列(如表)中的值的集合。 例如,如果要在 A 列和 B 列中向下搜索值到第 6 行。 LOOKUP 将返回最接近的匹配项。 要使用数组形式,必须对数据排序。

    包含数组的表的示例

向量形式

LOOKUP 的向量形式在单行区域或单列区域(称为“向量”)中查找值,然后返回第二个单行区域或单列区域中相同位置的值。

语法

LOOKUP(lookup_value, lookup_vector, [result_vector])

LOOKUP 函数向量形式语法具有以下参数:

  • lookup_value    必需。 LOOKUP 在第一个向量中搜索的值。 Lookup_value 可以是数字、文本、逻辑值、名称或对值的引用。

  • lookup_vector    必需。 只包含一行或一列的区域。 lookup_vector 中的值可以是文本、数字或逻辑值。

    重要: lookup_vector 中的值必须按升序排列:..., -2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE;否则,LOOKUP 可能无法返回正确的值。 文本不区分大小写。

  • result_vector    可选。只包含一行或一列的区域。result_vector 参数必须与 lookup_vector 参数大小相同。其大小必须相同。

备注

  • 如果 LOOKUP 函数找不到 lookup_value,则该函数会与 lookup_vector 中小于或等于 lookup_value 的最大值进行匹配。

  • 如果 lookup_value 小于 lookup_vector 中的最小值,则 LOOKUP 会返回 #N/A 错误值。

矢量示例

你可以在自己的 Excel 工作表中尝试这些示例,了解 LOOKUP 函数的工作方式。 在第一个示例中,最终生成的电子表格如下所示:

LOOKUP 函数的使用示例

  1. 复制下表中的数据,然后将其粘贴进新的 Excel 工作表中。

    将此数据复制到 A 列中

    将此数据复制到 B 列中

    频率

    4.14

    颜色

    红色

    4.19

    橙色

    5.17

    黄色

    5.77

    绿色

    6.39

    蓝色

  2. 接下来,将下表中的 LOOKUP 公式复制到工作表的 D 列中。

    将此公式复制到 D 列中

    下面是此公式执行的操作

    下面是你将看到的结果

    公式

    =LOOKUP(4.19, A2:A6, B2:B6)

    在 A 列中查找 4.19,然后返回 B 列中同一行内的值。

    橙色

    =LOOKUP(5.75, A2:A6, B2:B6)

    在 A 列中查找 5.75,与最接近的较小值 (5.17) 匹配,然后返回 B 列中同一行内的值。

    黄色

    =LOOKUP(7.66, A2:A6, B2:B6)

    在 A 列中查找 7.66,与最接近的较小值 (6.39) 匹配,然后返回 B 列中同一行内的值。

    蓝色

    =LOOKUP(0, A2:A6, B2:B6)

    在 A 列中查找 0,并返回错误,因为 0 小于列 A 中的最小值 (4.14)。

    #N/A

  3. 要让这些公式显示结果,可能需要在 Excel 工作表中选择它们,按 F2,然后按 Enter。 如果需要,请调整列宽以查看所有数据。

数组形式

提示: 强烈建议使用 VLOOKUPHLOOKUP,不要使用数组形式。请观看此视频,了解如何使用 VLOOKUP,其中包含示例。提供 LOOKUP 的数组形式是为了与其他电子表格程序兼容,这种形式的功能有限。

LOOKUP 的数组形式在数组的第一行或第一列中查找指定的值,并返回数组最后一行或最后一列中同一位置的值。当要匹配的值位于数组的第一行或第一列中时,请使用 LOOKUP 的这种形式。

语法

LOOKUP(lookup_value, array)

LOOKUP 函数数组形式语法具有以下参数:

  • lookup_value    必需。 LOOKUP 在数组中搜索的值。 lookup_value 参数可以是数字、文本、逻辑值、名称或对值的引用。

    • 如果 LOOKUP 找不到 lookup_value 的值,它会使用数组中小于或等于 lookup_value 的最大值。

    • 如果 lookup_value 的值小于第一行或第一列中的最小值(取决于数组维度),LOOKUP 会返回 #N/A 错误值。

  • array    必需。 包含要与 lookup_value 进行比较的文本、数字或逻辑值的单元格区域。

    LOOKUP 的数组形式与 HLOOKUPVLOOKUP 函数非常相似。 区别在于:HLOOKUP 在第一行中搜索 lookup_value 的值,VLOOKUP 在第一列中搜索,而 LOOKUP 根据数组维度进行搜索。

    • 如果数组包含宽度比高度大的区域(列数多于行数)LOOKUP 会在第一行中搜索 lookup_value 的值。

    • 如果数组是正方的或者高度大于宽度(行数多于列数),LOOKUP 会在第一列中进行搜索。

    • 使用 HLOOKUPVLOOKUP 函数,您可以通过索引以向下或遍历的方式搜索,但是 LOOKUP 始终选择行或列中的最后一个值。

      重要: 数组中的值必须按升序排列:..., -2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE;否则,LOOKUP 可能无法返回正确的值。 文本不区分大小写。