跳转至

Excel XLOOKUP函数教程:9个XLOOKUP案例详解与VLOOKUP区别

在 Excel 日常数据处理中,Excel XLOOKUP函数 已经成为非常实用的现代查找方案。很多人学习 XLOOKUP教程 时,最关心的往往是函数语法怎么写、常见 XLOOKUP案例 应该如何落地,以及 XLOOKUP和VLOOKUP区别 到底体现在哪些场景中。

XLOOKUP 是 Microsoft Excel 中一个功能强大的现代查找函数,于 2019 年随 Office 365 推出,旨在替代传统的 VLOOKUP 和 HLOOKUP。它既能完成最基础的精确匹配,也能处理横向查找、反向查找、批量返回、多条件查找、倒序查找和近似匹配等场景。相比传统函数,它的写法更直观,逻辑也更清晰。

如果你正在做销售数据匹配、员工信息查询、提成区间判断,或者想减少复杂公式的嵌套,那么这篇文章中的 9 个案例基本可以覆盖大多数常见需求。

XLOOKUP 基本语法

XLOOKUP 的完整语法如下:

Text Only
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])

其中,前三个参数为必填参数,后三个为可选参数。

参数详解

参数 名称 是否必填 说明
lookup_value 查找值 必填 你要查找的内容
lookup_array 查找范围 必填 在哪一列或哪一行中查找
return_array 返回范围 必填 找到后返回哪一列或哪一行的值
if_not_found 找不到时返回值 可选 默认返回 #N/A,也可以自定义提示内容
match_mode 匹配模式 可选 0 为精确匹配(默认),-1 为精确匹配或返回下一个更小值,1 为精确匹配或返回下一个更大值
search_mode 搜索模式 可选 1 为从前到后查找(默认),-1 为从后到前查找

与 VLOOKUP/HLOOKUP 的核心区别

XLOOKUP 之所以更适合现代 Excel 使用场景,很大程度上是因为它把过去分散在多个函数里的能力整合到了一起。

对比维度 VLOOKUP/HLOOKUP XLOOKUP
查找方向 VLOOKUP 主要处理竖向查找,HLOOKUP 处理横向查找 一个函数同时支持竖向和横向查找
返回位置限制 VLOOKUP 通常要求返回列位于查找列右侧 返回区域不受左右限制,可直接反向查找
默认匹配方式 VLOOKUP 容易因参数设置不当产生近似匹配问题 默认就是精确匹配,更稳妥
返回结果形式 通常返回单个值 支持返回整行、整列或多列结果
错误处理 往往需要搭配 IFERROR() 可直接使用 if_not_found 参数
高级查找 倒序查找、多条件查找需要额外技巧 通过参数与数组能力可以直接完成

9 个典型案例详解

案例一、竖向查找

使用场景

在一列数据中,根据姓名查找对应的销售额。这是 XLOOKUP 最基础、也是最常见的用法。

图片

案例一、竖向查找

查找目标

查找小陈的销售额,结果为 60

公式

Text Only
=XLOOKUP(F2, A2:A13, B2:B13)

参数解析

参数 实际内容 说明
lookup_value F2 查找值,即“小陈”所在单元格
lookup_array A2:A13 姓名列,也就是竖向查找范围
return_array B2:B13 销售额列,返回对应结果

结果说明

XLOOKUP 会在 A2:A13 中从上到下查找“小陈”,找到后返回同一行 B2:B13 中的值,也就是 60。

核心知识点或实战价值

这个案例说明,XLOOKUP 可以直接指定“查找列”和“返回列”,不需要像 VLOOKUP 那样再去数第几列,公式更直观,也更不容易出错。

案例二、横向查找

使用场景

当数据是横向排列时,比如姓名在第一行、销售额在第二行,就可以用 XLOOKUP 直接做横向查找。

图片

案例二、横向查找

查找目标

查找小陈的销售额,结果为 60

公式

Text Only
=XLOOKUP(A23, B18:M18, B19:M19)

参数解析

参数 实际内容 说明
lookup_value A23 查找值“小陈”
lookup_array B18:M18 姓名所在的横向一行
return_array B19:M19 销售额所在的横向一行

结果说明

函数会在第一行中定位“小陈”,然后返回第二行同一列对应的销售额 60。

核心知识点或实战价值

这正是 XLOOKUP 相比 VLOOKUP 的明显优势之一。VLOOKUP 更适合竖向查找,横向通常要换成 HLOOKUP;而 XLOOKUP 用同一套语法就能同时覆盖横向与竖向场景。

案例三、反向查找

使用场景

当返回列位于查找列左侧时,传统 VLOOKUP 会比较受限,而 XLOOKUP 可以直接完成这种“反向查找”。

图片

案例三、反向查找

查找目标

已知姓名“小王”,查找对应工号,结果为 A003

公式

Text Only
=XLOOKUP(A47, C31:C42, B31:B42)

参数解析

参数 实际内容 说明
lookup_value A47 查找值“小王”
lookup_array C31:C42 姓名列
return_array B31:B42 工号列,位于姓名列左侧

结果说明

函数会先在姓名列中找到“小王”,再返回左侧工号列对应的值 A003

核心知识点或实战价值

XLOOKUP 最大的优势之一,就是返回范围不再受“必须位于右侧”这一限制。实际工作中遇到表结构固定、无法调整列顺序时,这一点非常有价值。

案例四、整行查找

使用场景

查找某个关键值后,一次性返回该行中的多列数据,而不是只返回单个单元格结果。

图片

案例四、整行查找

查找目标

根据工号 A004,一次性返回对应的姓名和销售额。

公式

Text Only
=XLOOKUP(F33, B31:B42, C31:D42)

参数解析

参数 实际内容 说明
lookup_value F33 查找值 A004
lookup_array B31:B42 工号列
return_array C31:D42 姓名列和销售额列,两列同时返回

结果说明

返回结果为“小吴”和 120 两个值,并自动溢出到相邻单元格中。

核心知识点或实战价值

这个案例体现的是 XLOOKUP 的动态数组能力。return_array 不一定只能是一列,也可以是一整块区域,因此很适合做整行信息提取。

案例五、整列查找

使用场景

当需要一次性批量查询多个姓名对应的销售额时,不必为每个姓名单独写一条公式。

图片

案例五、整列查找

查找目标

批量查找小张、小李、小蒋、小苏、小马的销售额。

公式

Text Only
=XLOOKUP(F33:F37, C31:C42, D31:D42)

参数解析

参数 实际内容 说明
lookup_value F33:F37 一个包含 5 个姓名的查找区域
lookup_array C31:C42 姓名列
return_array D31:D42 销售额列

结果说明

一个公式即可同时返回 5 行结果,并向下自动溢出,结果为 100、130、300、160、260

核心知识点或实战价值

这里的关键点在于,lookup_value 不仅可以是单个单元格,也可以是一个区域。结合 Excel 365/2021 的动态数组能力,XLOOKUP 能直接完成批量查找,大幅减少重复公式。

案例六、指定错误值

使用场景

当查找目标不存在时,不希望单元格返回 #N/A,而是显示更友好的提示信息。

图片

案例六、指定错误值

查找目标

查找“小111”的销售额,但数据中不存在此人。

公式

Text Only
=XLOOKUP(F32, C31:C42, D31:D42, "未找到")

参数解析

参数 实际内容 说明
lookup_value F32 查找值“小111”
lookup_array C31:C42 姓名列
return_array D31:D42 销售额列
if_not_found "未找到" 找不到时返回自定义文字

结果说明

由于“小111”不存在,最终不会显示 #N/A,而是直接返回“未找到”。

核心知识点或实战价值

过去这类需求常常需要在外层再套一层 IFERROR()。有了 if_not_found 参数后,错误处理可以直接内置在 XLOOKUP 里,公式更简洁,也更适合报表展示。

案例七、多条件查找

使用场景

当一个条件无法唯一确定结果时,可以把多个条件拼接起来,构造成一个组合查找键。

图片

案例七、多条件查找

查找目标

查找“小陈 + 健身器械”对应的销售额,结果为 140

公式

Text Only
=XLOOKUP(A72&B72, F70:F84&G70:G84, H70:H84)

参数解析

参数 实际内容 说明
lookup_value A72&B72 将“小陈”和“健身器械”拼接为组合查找值
lookup_array F70:F84&G70:G84 将姓名列和产品列逐行拼接,生成虚拟组合列
return_array H70:H84 返回销售额列

结果说明

函数会把“姓名 + 产品”作为唯一匹配条件,在数据中找到“小陈健身器械”这一组合,并返回对应销售额 140。

核心知识点或实战价值

这个方法适合处理常见的多条件精确查找,而且不需要额外增加辅助列。实际使用时,要注意拼接后的组合值不要产生歧义,必要时可以增加分隔符来提高稳定性。

相关数据如下:

姓名 产品 销售额
小张 水果 310
小李 水果 500
小陈 水果 60
小张 健身器械 50
小陈 健身器械 140
小张 保健品 260
小陈 保健品 240

案例八、倒序查找

使用场景

当同一个查找值在数据中重复出现,而你要的不是第一条记录,而是最后一条记录时,就需要倒序查找。

图片

案例八、倒序查找

查找目标

查找最后一个“小张”对应的销售额,结果为 260

公式

Text Only
=XLOOKUP(A77, F70:F84, H70:H84, , , -1)

参数解析

参数 实际内容 说明
lookup_value A77 查找值“小张”
lookup_array F70:F84 姓名列,其中“小张”出现多次
return_array H70:H84 销售额列
if_not_found 留空 使用默认值
match_mode 留空 使用默认精确匹配
search_mode -1 从后往前进行倒序搜索

结果说明

右侧数据表里“小张”出现了 3 次,默认查找会先返回第一条 310,而 search_mode=-1 会让函数从后往前搜索,因此最终返回最后一条记录对应的 260

核心知识点或实战价值

这个参数特别适合查询最后一次成交记录、最后一次打卡记录、最后一条流水信息等场景。公式里连续留空两个参数,也是很多人学习 XLOOKUP 时必须掌握的写法细节。

案例九、匹配模式

使用场景

当查找值不一定能精确命中,而是需要按区间、档位或提成标准来匹配时,就可以用匹配模式来完成近似查找。

图片

案例九、匹配模式

查找目标

销售额为 310 时,查找对应的提成比例,结果为 3%

公式

Text Only
=XLOOKUP(D90, A88:A91, B88:B91, , -1)

参数解析

参数 实际内容 说明
lookup_value D90 查找值 310
lookup_array A88:A91 销售额下限列
return_array B88:B91 提成比例列
if_not_found 留空 使用默认值
match_mode -1 精确匹配,或返回下一个更小的值

结果说明

因为 310 不在表中,所以 XLOOKUP 会根据 match_mode=-1 找到不超过 310 的最大下限值,也就是 200,再返回对应的提成比例 3%

核心知识点或实战价值

这个案例非常适合提成分级、成绩分段、价格区间等业务逻辑。需要注意的是,进行这类近似匹配时,源数据通常要保持升序排列,否则结果可能不可靠。

相关区间表如下:

销售额下限 提成比例
50 1%
100 2%
200 3%
400 4%

写在最后

从竖向查找、横向查找,到反向查找、整行整列返回、错误值处理、多条件匹配、倒序查找和近似匹配,可以看到 XLOOKUP 已经不只是 VLOOKUP 的替代品,而是 Excel 查找类函数中更完整的一套解决方案。

如果你使用的是 Excel 365 或 Excel 2021 及以上版本,熟练掌握 XLOOKUP,基本就能覆盖大多数常见的数据查找需求。把这 9 个案例练熟之后,再回头看复杂报表或业务表格,很多原本需要多层嵌套公式的问题,往往都能用一个 XLOOKUP 更高效地解决。