本文介绍 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 大于 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