当您需要查询一行或一列并查找另一行或列中的相同位置的值时,会使用其中一个查找和引用函数 LOOKUP。
例如,假设你知道某个汽车部件的部件号,但是不知道价格。 如果在单元格 H1 中输入汽车部件号,可在单元格 H2 中使用 LOOKUP 函数返回价格。
可使用 LOOKUP 函数搜索一行或一列。 在上面的示例中,我们在 D 列中搜索价格。
提示: 考虑一个较新的查找函数,具体取决于你使用的版本。
-
可使用 VLOOKUP 搜索一行或一列,或搜索多行和多列(如表)。 该函数是 LOOKUP 的大幅度改进版本。 请观看此视频,了解如何使用 VLOOKUP。
-
如果使用 Microsoft 365 ,请使用 XLOOKUP - 它不仅速度更快,还允许你 (向上、向下、向左、向右) 搜索。
LOOKUP 有两种使用方式:向量形式和数组形式
-
向量形式:可使用 LOOKUP 的这种形式在一行或一列中搜索值。 如果要指定包含要匹配的值的区域,请使用这种形式。 例如,如果要在 A 列中向下搜索值到第 6 行。
-
数组形式:强烈建议使用 VLOOKUP 或 HLOOKUP,不要使用数组形式。 观看此视频,了解如何使用 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 函数的工作方式。 在第一个示例中,最终生成的电子表格如下所示:
-
复制下表中的数据,然后将其粘贴进新的 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,不要使用数组形式。 请观看此视频,了解如何使用 VLOOKUP,其中包含示例。 LOOKUP 的数组形式是为了与其他电子表格程序的兼容性而提供的,但其功能有限。
LOOKUP 的数组形式在数组的第一行或第一列中查找指定的值,并返回数组最后一行或最后一列中同一位置的值。 当要匹配的值位于数组的第一行或第一列中时,请使用 LOOKUP 的这种形式。
语法
LOOKUP(lookup_value, array)
LOOKUP 函数数组形式语法具有以下参数:
-
lookup_value 必需。 LOOKUP 在数组中搜索的值。 lookup_value 参数可以是数字、文本、逻辑值、名称或对值的引用。
-
如果 LOOKUP 找不到 lookup_value 的值,它会使用数组中小于或等于 lookup_value 的最大值。
-
如果 lookup_value 的值小于第一行或第一列中的最小值(取决于数组维度),LOOKUP 会返回 #N/A 错误值。
-
-
数组 必需。 包含要与 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 可能无法返回正确的值。 文本不区分大小写。
-