HLOOKUP 函数¶
1. 函数概述¶
HLOOKUP(Horizontal Lookup,水平查找)用于在区域的第一行中查找指定值,并返回同一列中指定行的对应值。它适合数据以“字段在上、记录在下”的横向结构组织时使用,例如:产品编号在第一行、价格/库存/评分等指标在下面多行。
- 核心能力:在第一行定位“列”,再按指定行号取值
- 典型场景:横向表格取值、按表头字段匹配、按编号/名称查找对应指标
2. 基础语法¶
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),返回对应价格。
解释:
- 在
A1:E1(第一行)中找到G1的产品ID所在列 - 返回同列第 3 行(价格行)的值
示例 2:精确匹配,返回名称 / 库存¶
返回名称:
返回库存:
row_index_num控制“向下取第几行”。
示例 3:结合绝对引用¶
如果你要把公式复制到多个单元格,建议锁定查找区域:
示例 4:近似匹配,做区间档位查找¶
当 range_lookup 为 TRUE(或省略)时,HLOOKUP 会在第一行做近似匹配:返回“不大于查找值的最大值”对应列。常用于“分档表”(如分数—等级)。
示例(A1:E2)第一行是分数下限,第二行是等级:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | 0 | 60 | 70 | 85 | 95 |
| 2 | 不及格 | 及格 | 中等 | 良好 | 优秀 |
若分数在 G1,返回等级:
要点:第一行必须升序排列(0、60、70、85、95),否则结果可能不符合预期。
示例 5:配合 IFERROR 做友好提示¶
当精确匹配找不到值时会返回 #N/A,可用 IFERROR 包一层提示:
5. 总结¶
- HLOOKUP 用于横向查找:在区域第一行找列,再按
row_index_num返回对应行的值。 range_lookup=FALSE是最常用、最稳定的用法:精确匹配,不要求排序。range_lookup=TRUE适用于分档/区间匹配:要求第一行升序。- 复制公式时常配合
$锁定区域,搭配IFERROR提升可读性与容错体验。