跳转至

HLOOKUP 函数

1. 函数概述

HLOOKUP(Horizontal Lookup,水平查找)用于在区域的第一行中查找指定值,并返回同一列中指定行的对应值。它适合数据以“字段在上、记录在下”的横向结构组织时使用,例如:产品编号在第一行、价格/库存/评分等指标在下面多行。

  • 核心能力:在第一行定位“列”,再按指定行号取值
  • 典型场景:横向表格取值、按表头字段匹配、按编号/名称查找对应指标

2. 基础语法

HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])

3. 参数说明

参数 是否必填 含义 说明
lookup_value 必填 要查找的值 会在 table_array第一行中查找
table_array 必填 查找区域 包含“第一行(查找行)+ 若干返回行”的区域
row_index_num 必填 返回第几行的值 相对于 table_array 来说:第一行为 1,第二行为 2…
[range_lookup] 可选 匹配方式 FALSE 精确匹配;TRUE/省略 近似匹配(要求第一行按升序)

实务上:绝大多数查表取值建议用 FALSE 精确匹配,更可控。


4. 基础用法示范

下面用一个横向表格演示(A1:E4):

A B C D E
1 产品ID P001 P002 P003 P004
2 名称 苹果 香蕉 桃子
3 价格 5 3 4 6
4 库存 20 35 10 18

示例 1:精确匹配,按产品ID返回价格

需求:输入产品ID(如在 G1),返回对应价格。

=HLOOKUP(G1, A1:E4, 3, FALSE)

解释:

  • A1:E1(第一行)中找到 G1 的产品ID所在列
  • 返回同列第 3 行(价格行)的值

示例 2:精确匹配,返回名称 / 库存

返回名称:

=HLOOKUP(G1, A1:E4, 2, FALSE)

返回库存:

=HLOOKUP(G1, A1:E4, 4, FALSE)

row_index_num 控制“向下取第几行”。


示例 3:结合绝对引用

如果你要把公式复制到多个单元格,建议锁定查找区域:

=HLOOKUP($G$1, $A$1:$E$4, 3, FALSE)

示例 4:近似匹配,做区间档位查找

range_lookupTRUE(或省略)时,HLOOKUP 会在第一行做近似匹配:返回“不大于查找值的最大值”对应列。常用于“分档表”(如分数—等级)。

示例(A1:E2)第一行是分数下限,第二行是等级:

A B C D E
1 0 60 70 85 95
2 不及格 及格 中等 良好 优秀

若分数在 G1,返回等级:

=HLOOKUP(G1, A1:E2, 2, TRUE)

要点:第一行必须升序排列(0、60、70、85、95),否则结果可能不符合预期。


示例 5:配合 IFERROR 做友好提示

当精确匹配找不到值时会返回 #N/A,可用 IFERROR 包一层提示:

=IFERROR(HLOOKUP(G1, A1:E4, 3, FALSE), "未找到该产品")

5. 总结

  • HLOOKUP 用于横向查找:在区域第一行找列,再按 row_index_num 返回对应行的值。
  • range_lookup=FALSE 是最常用、最稳定的用法:精确匹配,不要求排序。
  • range_lookup=TRUE 适用于分档/区间匹配:要求第一行升序
  • 复制公式时常配合 $ 锁定区域,搭配 IFERROR 提升可读性与容错体验。