一、官方说明
本文介绍 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 的另一种形式。
提示 一般情况下,最好使用 HLOOKUP 或 VLOOKUP 函数,而不是 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 的数组形式与 HLOOKUP 和 VLOOKUP 函数非常相似。 区别在于:HLOOKUP 在第一行中搜索 lookup_value 的值,VLOOKUP 在第一列中搜索,而 LOOKUP 根据数组维度进行搜索。
- 如果数组包含宽度比高度大的区域(列数多于行数)LOOKUP 会在第一行中搜索 lookup_value 的值。
- 如果数组是正方的或者高度大于宽度(行数多于列数),LOOKUP 会在第一列中进行搜索。
- 使用 HLOOKUP 和 VLOOKUP 函数,您可以通过索引以向下或遍历的方式搜索,但是 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官方帮助说明
:::
