提示: 尝试使用新的 XLOOKUP 函数,该函数是 HLOOKUP 的改进版本,可在任何方向工作,默认情况下返回完全匹配,因此使用起来比前一个版本更轻松、更方便。
本文介绍 Microsoft Excel 中 HLOOKUP 函数的公式语法和用法。
说明
在表格的首行或数值数组中搜索值,然后返回表格或数组中指定行的所在列中的值。 当比较值位于数据表格的首行时,如果要向下查看指定的行数,则可使用 HLOOKUP。 当比较值位于所需查找的数据的左边一列时,则可使用 VLOOKUP。
HLOOKUP 中的 H 代表“行”。
语法
HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])
HLOOKUP 函数语法具有下列参数:
-
Lookup_value 必需。 要在表格的第一行中查找的值。 Lookup_value 可以是数值、引用或文本字符串。
-
Table_array 必需。 在其中查找数据的信息表。 使用对区域或区域名称的引用。
-
Table_array 的第一行的数值可以为文本、数字或逻辑值。
-
如果 range_lookup 为 TRUE,则 table_array 的第一行的数值必须按升序排列:...-2、-1、0、1、2、...、A-Z、FALSE、TRUE;否则,HLOOKUP 将不能给出正确的数值。 如果 range_lookup 为 FALSE,则 table_array 不必进行排序。
-
文本不区分大小写。
-
将数值从左到右按升序排序。 有关详细信息,请参阅对区域或表中的数据排序。
-
-
Row_index_num 必需。 将从中返回匹配值的table_array中的行号。 row_index_num 1 返回table_array中的第一行值,row_index_num 2 返回table_array中的第二行值,依此以类。 如果row_index_num小于 1,HLOOKUP 将返回 #VALUE! error 值;如果row_index_num大于table_array上的行数,HLOOKUP 将返回 #REF! 错误值。
-
Range_lookup 可选。 一个逻辑值,指定希望 HLOOKUP 查找精确匹配值还是近似匹配值。 如果为 TRUE 或省略,则返回近似匹配值。 换言之,如果找不到精确匹配值,则返回小于 lookup_value 的最大值。 如果为 False,则 HLOOKUP 将查找精确匹配值。 如果找不到精确匹配值,则返回错误值 #N/A。
备注
-
如果函数 HLOOKUP 找不到 lookup_value,且 range_lookup 为 TRUE,则使用小于 lookup_value 的最大值。
-
如果函数 HLOOKUP 小于 table_array 第一行中的最小数值,函数 HLOOKUP 返回错误值 #N/A。
-
如果 range_lookup 为 FALSE 且 lookup_value 为文本,则可以在 lookup_value 中使用通配符(问号 (?) 和星号 (*))。 问号匹配任意单个字符;星号匹配任意一串字符。 如果要查找实际的问号或星号,请在字符前键入波形符 (~)。
示例
复制下表中的示例数据,然后将其粘贴进新的 Excel 工作表的 A1 单元格中。 要使公式显示结果,请选中它们,按 F2,然后按 Enter。 如果需要,可调整列宽以查看所有数据。
车轴 |
轴承 |
螺钉 |
4 |
4 |
9 |
5 |
7 |
10 |
6 |
8 |
11 |
公式 |
说明 |
结果 |
=HLOOKUP("车轴", A1:C4, 2, TRUE) |
在首行查找车轴,并返回同列(列 A)中第 2 行的值。 |
4 |
=HLOOKUP("轴承", A1:C4, 3, FALSE) |
在首行查找轴承,并返回同列(列 B)中第 3 行的值。 |
7 |
=HLOOKUP("B", A1:C4, 3, TRUE) |
在首行查找 B,并返回同列中第 3 行的值。 因为找不到 B 的完全匹配项,将使用第 1 行列 A 中小于 B 的最大值 "车轴"。 |
5 |
=HLOOKUP("螺栓", A1:C4, 4) |
在首行查找螺栓,并返回同列(列 C)中第 4 行的值。 |
11 |
=HLOOKUP(3, {1,2,3;"a","b","c";"d","e","f"}, 2, TRUE) |
在三行数组常量中查找数字 3,并返回同列(本例中为第三列)中第 2 行的值。 数组常量中有三行数值,并且每行都用分号 (;) 分隔。 因为在第 2 行和第 3 列(同一列)中找到 c,因此将返回 c。 |
c |