提示: 请尝试使用新的 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! 错误值;如果row_index_num大于行数,则 HLOOKUP table_array返回#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 |