使用 HLOOKUP 进行近似匹配
设想一家餐饮公司根据宾客人数为活动提供不同的菜单套餐。
这些套餐采用分级定价,不同的宾客人数区间对应不同价格。其定价策略为:人数越多,人均费用越低,以鼓励更多人数的预订。
其价格表如下所示:

餐饮公司数据。
您被要求在遵循该定价策略的前提下,找到一种快捷方法:根据预计宾客人数,快速确定任意预订的总价。
我们将看到,HLOOKUP 的近似匹配参数在这种情况下非常实用。让我们再次按照之前的步骤操作:
- 步骤 1:选择要显示结果的单元格。这里,我们已在 B4 单元格给出了输入(宾客人数),希望在 B5 单元格显示人均价格。总价可在 B6 计算,即 B4 与 B5 的简单乘积(宾客人数 * 人均价格)。

选择执行 HLOOKUP 的单元格。
- 步骤 2:在单元格 B4 中输入以下公式:
=HLOOKUP(B4,B1:E2,2,TRUE)
- 步骤 3:确认输入。

执行 HLOOKUP 操作。
在步骤 3 执行 HLOOKUP 后,单元格 B5 将显示 $960。对于 149 人的宾客人数,由于其落在大于 100 且小于 150 的区间内,这就是相应的人均价格。
我们输入的公式参数解释如下:
- B4 是 lookup_value,即我们想要查找其人均套餐价格的宾客人数。
- B1:E2 是 table_array,即包含要搜索数据的单元格范围。
- 2 是 row_index_num,表示要从 table_array 的第二行(存放人均价格的行)提取值。
- TRUE 指定我们需要近似匹配,因为实际宾客人数往往与预设区间并不完全一致。
HLOOKUP 函数成功在指定 table_array(B1:E1)首行中查找到小于或等于 149 的最近人数区间,并从第二行(B2:E2)返回了对应的人均套餐价格,即 $960。
此示例展示了在横向数据集中基于分级或区间结构高效取数时,使用近似匹配的 HLOOKUP 的实用性。
结语
本教程向您介绍了 Microsoft Excel 中 HLOOKUP 的语法,并通过多个示例帮助您理解如何在数据中加以运用。
起初可能会觉得有些困难和混乱,但一旦熟悉之后,您会喜欢上这一功能,并在需要时便捷地提取数据。
如需了解该工具的任何新更新,微软官方文档始终是可靠的信息来源。
最后,如需系统学习如何利用 Excel 提升数据分析技能,欢迎查看Excel 基础学习路径,从零开始,直至在 Excel 中构建自己的客户流失分析项目。
您也可以查看我们的基础 Excel 公式教程以及Excel 公式速查表。
作为一名高级数据科学家,我设计、开发并部署大规模机器学习解决方案,帮助企业做出更明智的数据驱动决策。作为数据科学写作者,我分享所学心得、职业建议以及深入的实践型教程。
Excel 中的 HLOOKUP 常见问题
HLOOKUP 能否在首行之外的其他行中搜索数值?
不能。HLOOKUP 只能在指定 table_array 的首行中搜索值。若要在其他行中搜索,您可能需要重组数据或使用其他函数。
未排序的数据可以用于 HLOOKUP 吗?
如果使用近似匹配,table_array 首行的数据必须按升序排序。若为精确匹配,则无需排序。
HLOOKUP 能否从多行返回多个值?
不能。HLOOKUP 只能从单个指定行返回一个值。若要从多行返回值,您需要使用多个 HLOOKUP,或考虑采用其他方法。
什么是 VLOOKUP?它与 HLOOKUP 有何不同?
VLOOKUP(垂直查找)是 Excel 中的一个函数,它在表或区域的首列中搜索特定值,并从同一行的指定列返回一个值。它常用于在垂直组织的表格中搜索和提取数据。
VLOOKUP 与 HLOOKUP 的主要区别在于查找方向:VLOOKUP 沿表或区域的首列向下垂直查找,并从同一行的指定列返回数据;而 HLOOKUP 沿表或区域的首行水平查找,并从同一列的指定行返回数据。
与 HLOOKUP 相关的 Excel 函数有哪些?
有多种与 HLOOKUP 密切相关的 Excel 函数:
- VLOOKUP。 与 HLOOKUP 类似,但不是在行内水平查找,而是在列中垂直向下查找以找到值。
- INDEX。 比 HLOOKUP 更灵活,可在给定区域内根据指定的行和列返回值。它可与 MATCH 函数配合使用,实现更动态的查找。
- MATCH。 用于查找某个值在行或列中的相对位置。常与 INDEX 组合,创建更强大的查找公式。
- XLOOKUP。 Excel 中较新的函数,融合了 VLOOKUP 和 HLOOKUP 的特性,可在任意方向(水平与垂直)进行查找,具有更高的灵活性和更少的限制。
- LOOKUP。 较早的函数,可在单行或单列范围中查找某个值,并从另一单行或单列范围返回对应值。
- CHOOSE。 根据索引号从列表中选择一个值。虽然不是直接的查找函数,但可与其他函数组合,巧妙用于特定的查找任务。

由于 Microsoft Excel 在行业内广泛使用且界面友好,掌握足够的 Excel 知识已成为初级数据分析师的一项必备技能。
尽管人们已意识到需要复杂的数据架构和大数据分析工具来处理海量数据的收集、处理与分析,但许多组织仍依赖 Excel 进行数据存储、处理和分析,使其成为最常用的分析工具之一。
几乎很少见到有组织不使用 Microsoft Excel 对数据快照进行快速的临时分析。因此,数据分析师必须具备 Excel 技能,尤其是内置函数,如数据透视表、条件格式、查找函数等。
毕竟,您无需高级编程技能,就能在相对较短的时间内轻松上手。
本教程将向您介绍这样一个内置函数——HLOOKUP。我会提供其语法,并通过多个示例帮助您熟悉其用法。结合多种场景、截图以及常见问题解答,本教程将满足您在 Excel 中开始使用 HLOOKUP 的全部需求。
什么是 HLOOKUP?
Excel 中的 HLOOKUP(Horizontal Lookup,水平查找)是一个内置函数,可让用户在表格中按水平方向查找数据。它在表格的首行中搜索特定值,并从表格或数组中指定的行返回相应的值。
当您需要从按行而非按列排列的数据集中提取信息时,HLOOKUP 非常有用。
尤其是在处理关键值分布在首行的数据表时,您需要基于水平匹配从下面的行中提取对应数值,HLOOKUP 就显得尤为便利。
HLOOKUP 函数的语法与参数
HLOOKUP 在 Excel 中的语法如下:
该函数的参数包括:
需要注意的是,如果 [range_lookup] 参数设置为 TRUE 或被省略,且未找到精确匹配,函数将在 table_array 首行按升序排序的前提下,返回小于或等于 lookup_value 的最大值所对应的结果。
如果将 [range_lookup] 参数设置为 FALSE,且未找到精确匹配,函数将返回错误。
既然我们已经了解了 HLOOKUP 的语法——接下来就通过几个常见的业务场景来练习一下。
如何在 Excel 中使用 HLOOKUP:示例
设想一家小型在线零售公司,销售各类电子产品。该公司在 Excel 电子表格中记录其每月销售数据。管理团队希望快速调取特定产品在不同月份的销售额,以便分析趋势并做出明智决策。
相关数据的快照如下所示:
在线零售公司销售数据。(本文及以下所有图片均由作者提供)
我们来看看如何使用 HLOOKUP 函数查找“Laptops”在 3 月的销售额:
选择一个单元格以执行 HLOOKUP 函数。
输入 HLOOKUP 公式。
HLOOKUP 函数成功在指定 table_array(B1:G1)的首行中搜索到月份 “March”,并从第二行(B2:G2)返回了对应的值,即
210。我们提供的参数为:
"March"是 lookup_value,即我们想要查询其销售额的月份。B1:G2是 table_array,即包含要搜索数据的单元格范围。2是 row_index_num,表示要从 table_array 的第二行(存放 “Laptops” 销售额的行)提取值。FALSE表示我们需要对 lookup_value 进行精确匹配。通过该示例,我们看到 HLOOKUP 可根据给定条件,从按水平方向排列的数据集中高效提取特定数据。
如果我们并不需要精确匹配,该怎么办?