本文介绍 Microsoft Excel 中 LOOKUP 函数的公式语法和用法。
当您需要查询一行或一列并查找另一行或列中的相同位置的值时,会使用其中一个查找和引用函数 LOOKUP。
例如,假设你知道某个汽车部件的部件号,但是不知道价格。 如果在单元格 H1 中输入汽车部件号,可在单元格 H2 中使用 LOOKUP 函数返回价格。
可使用 LOOKUP 函数搜索一行或一列。 在上面的示例中,我们在 D 列中搜索价格。
可使用 VLOOKUP 搜索一行或一列,或搜索多行和多列(如表)。该函数是 LOOKUP 的大幅度改进版本。。
向量形式:可使用 LOOKUP 的这种形式在一行或一列中搜索值。 如果要指定包含要匹配的值的区域,请使用这种形式。 例如,如果要在 A 列中向下搜索值到第 6 行。
数组形式:强烈建议使用 VLOOKUP 或 HLOOKUP,不要使用数组形式。。提供数组形式是为了与其他电子表格程序兼容,这种形式的功能有限。
数组是要搜索的行和列(如表)中的值的集合。 例如,如果要在 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 函数的工作方式。 在第一个示例中,最终生成的电子表格如下所示:
复制下表中的数据,然后将其粘贴进新的 Excel 工作表中。
将此数据复制到 A 列中 |
将此数据复制到 B 列中 |
|
频率 4.14 |
颜色 红色 |
|
4.19 |
橙色 |
|
5.17 |
黄色 |
|
5.77 |
绿色 |
|
6.39 |
蓝色 |
接下来,将下表中的 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 |
要让这些公式显示结果,可能需要在 Excel 工作表中选择它们,按 F2,然后按 Enter。 如果需要,请调整列宽以查看所有数据。
提示: 强烈建议使用 VLOOKUP 或 HLOOKUP,不要使用数组形式。提供 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 的数组形式与 HLOOKUP 和 VLOOKUP 函数非常相似。 区别在于:HLOOKUP 在第一行中搜索 lookup_value 的值,VLOOKUP 在第一列中搜索,而 LOOKUP 根据数组维度进行搜索。
如果数组包含宽度比高度大的区域(列数多于行数)LOOKUP 会在第一行中搜索 lookup_value 的值。
如果数组是正方的或者高度大于宽度(行数多于列数),LOOKUP 会在第一列中进行搜索。
使用 HLOOKUP 和 VLOOKUP 函数,您可以通过索引以向下或遍历的方式搜索,但是 LOOKUP 始终选择行或列中的最后一个值。
重要: 数组中的值必须按升序排列:..., -2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE;否则,LOOKUP 可能无法返回正确的值。 文本不区分大小写。