一、官方说明

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

1.1 说明

LOOKUP 函数从单行或单列区域或数组返回值。 LOOKUP 函数具有两种语法形式:向量形式和数组形式。

如果需要 则参阅 用法
在单行区域或单列区域(称为“向量”)中查找值,然后返回第二个单行区域或单列区域中相同位置的值。 向量形式 当要查询的值列表较大或者值可能会随时间而改变时,使用该向量形式。
在数组的第一行或第一列中查找指定的值,然后返回数组的最后一行或最后一列中相同位置的值 数组形式 当要查询的值列表较小或者值在一段时间内保持不变时,使用该数组形式。

注释

  • 对于详细的测试或超出函数嵌套限制的测试,还可以使用 LOOKUP 函数来代替 IF 函数。 请参阅数组形式的示例。
  • 为了使 LOOKUP 函数能够正常运行,必须按升序排列查询的数据。 如果无法使用升序排列数据,请考虑使用 VLOOKUP、HLOOKUP 或 MATCH 函数。

    1.2 向量形式

    向量是只含一行或一列的区域。 LOOKUP 的向量形式在单行区域或单列区域(称为“向量”)中查找值,然后返回第二个单行区域或单列区域中相同位置的值。 当您要指定包含要匹配的值的区域时,请使用 LOOKUP 函数的这种形式。 LOOKUP 函数的另一种形式将自动在第一行或第一列中进行查找。

    1.2.1 语法

    :::tips LOOKUP(lookup_value, lookup_vector, [result_vector])
    LOOKUP(查找的值,查找的范围,返回值的范围) ::: 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 参数大小相同。

    1.2.2 说明

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

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

    1.2.3 矢量示例

    复制下表中的示例数据,然后将其粘贴进新的 Excel 工作表的 A1 单元格中。 要使公式显示结果,请选中它们,按 F2,然后按 Enter。 如果需要,可调整列宽以查看所有数据。
频率 颜色
4.14 红色
4.19 橙色
5.17 黄色
5.77 绿色
6.39 蓝色
公式 说明 结果
=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

1.3 数组形式

LOOKUP 的数组形式在数组的第一行或第一列中查找指定的值,并返回数组最后一行或最后一列中同一位置的值。 当要匹配的值位于数组的第一行或第一列中时,请使用 LOOKUP 的这种形式。 当要指定列或行的位置时,请使用 LOOKUP 的另一种形式。
提示 一般情况下,最好使用 HLOOKUPVLOOKUP 函数,而不是 LOOKUP 的数组形式。 LOOKUP 的这种形式是为了与其他电子表格程序兼容而提供的。

1.3.1 语法

:::tips 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 可能无法返回正确的值。 文本不区分大小写。

1.3.2 数组示例

示例1

工作簿中 Sheet2 上的示例显示与该函数配合使用的数组形式。
复制下表中的示例数据,然后将其粘贴进新的 Excel 工作表的 A1 单元格中。 要使公式显示结果,请选中它们,按 F2,然后按 Enter。 如果需要,可调整列宽以查看所有数据。

公式 说明 结果
=LOOKUP(“C”, {“a”,”b”,”c”,”d”;1,2,3,4}) 查找“C”,并查找小于或等于“C”的最接近的值。在本例中,可以找到完全匹配项,因为 LOOKUP 不区分大小写。 返回最后一行中同一列(第 3

列)内的值 (3)。 | 3 | | =LOOKUP(“bump”, {“a”,1;”b”,2;”c”,3}) | 查找“bump”,但未找到完全匹配项。 查找小于或等于“bump”的最大值(第 2 行中的“b”),然后返回最后一列中与“b”在同一行内的值 (2)。 | 2 |

示例2

相同工作薄中的 Sheet3 使用一个数组为测试分数指定一个字母等级。
复制下表中的示例数据,然后将其粘贴进新的 Excel 工作表的 A1 单元格中。 要使公式显示结果,请选中它们,按 F2,然后按 Enter。 如果需要,可调整列宽以查看所有数据。

分数
45
90
78
公式 说明 结果
=LOOKUP(A2, {0,60,70,80,90}, {“F”,”D”,”C”,”B”,”A”}) 在数组的第一行中查找 A2 中的值 (45),查找小于或等于它的最大值 (0),然后返回数组最后一行中同一列内的值。 F
=LOOKUP(A3, {0,60,70,80,90}, {“F”,”D”,”C”,”B”,”A”}) 在数组的第一行中查找 A3 中的值 (90),查找小于或等于它 (90) 的最大值 ,然后返回数组最后一行中同一列内的值。 A
=LOOKUP(A4, {0,60,70,80,90}, {“F”,”D”,”C”,”B”,”A”}) 在数组的第一行中查找 A4 中的值 (78),查找小于或等于它的最大值 (70),然后返回数组最后一行中同一列内的值。 C
=LOOKUP(A2, {0,60,63,67,70,73,77,80,83,87,90,93,97},

{“F”,”D-“,”D”,”D+”,”C-“,”C”,”C+”,”B-“,”B”,”B+”,”A-“,”A”,”A+”}) | 在数组的第一行中查找 A2 中的值 (45),查找小于或等于它的最大值 (0),然后返回数组最后一行中同一列内的值。 | F | | =LOOKUP(A3, {0,60,63,67,70,73,77,80,83,87,90,93,97}, {“F”,”D-“,”D”,”D+”,”C-“,”C”,”C+”,”B-“,”B”,”B+”,”A-“,”A”,”A+”}) | 在数组的第一行中查找 A3 中的值 (90),查找小于或等于它的最大值 (90),然后返回数组最后一行中同一列内的值。 | A- | | =LOOKUP(A4, {0,60,63,67,70,73,77,80,83,87,90,93,97}, {“F”,”D-“,”D”,”D+”,”C-“,”C”,”C+”,”B-“,”B”,”B+”,”A-“,”A”,”A+”}) | 在数组的第一行中查找 A4 中的值 (78),查找小于或等于它的最大值 (77),然后返回数组最后一行中同一列内的值。 | C+ |

:::warning LOOKUP函数官方示例源文件.xlsx :::

:::info 参考资料:
[1] office官方帮助说明 :::