首页 / 公式 / XLOOKUP
查找 Excel + Google Sheets

Excel XLOOKUP 函数

XLOOKUP 函数在区域中搜索值,并从另一区域返回对应结果——不必数列,也没有 VLOOKUP 的脆弱。Excel 365、Excel 2021 与 Google Sheets 均可使用。

XLOOKUP 语法与参数结构

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

多数精确匹配只需前三个必要参数。请保持 lookup_array 与 return_array 高度(或宽度)一致。

1 lookup_value
必填

要查找的值。可以是文本、数值、单元格引用(如 E2)或另一个公式的计算结果。

2 lookup_array
必填

要在其中搜索 lookup_value 的单列或单行区域(例如 A2:A6)。

3 return_array
必填

要返回数据的数组或区域(例如 C2:C6)。长度必须与 lookup_array 严格保持一致。

4 if_not_found
选填

找不到匹配项时返回的备用值(例如 "Not found" 或 0)。若省略且找不到时,Excel 会返回 #N/A。

5 match_mode
选填

匹配模式设置:

  • 0 — 精确匹配(默认值,最常用)
  • -1 — 精确匹配;若无则返回下一个较小的值(常用于阶梯区间)
  • 1 — 精确匹配;若无则返回下一个较大的值
  • 2 — 通配符匹配(支持 *、? 等)
6 search_mode
选填

搜索方向与算法:

  • 1 — 从第一项搜索到最后一项(默认值)
  • -1 — 从最后一项反向搜索到第一项(查找最新一条记录极佳)
  • 2 — 升序二分搜索(需先升序排序)
  • -2 — 降序二分搜索(需先降序排序)

Excel XLOOKUP 示例:按工号查工资

A 列是工号,B 列是姓名,C 列是工资。E2 放要查的工号:E-102。

工号姓名工资
E-101Ana72000
E-102Ben64000
E-103Chen81000
E-104Dia59000
E-105Eli77000
=XLOOKUP(E2, A2:A6, C2:C6, "Not found")

XLOOKUP 在 A2:A6 找到 E-102,从同一行的 C2:C6 返回 64000。找不到该工号时返回 Not found,而不是 #N/A。

如何在 Excel 中使用 XLOOKUP

  1. 确认查找值与搜索区域 — 先想清楚要找什么(lookup_value,如 E2 的员工编号),以及这些值所在的列或行(lookup_array,如 A2:A6)。
  2. 指向返回结果的区域 — 将 return_array 设为存放答案的区域(如 C2:C6 的薪资列),高度必须与 lookup_array 完全一致。
  3. 输入公式并处理未找到的情况 — 输入 =XLOOKUP(E2, A2:A6, C2:C6) 后按 Enter。可加上第四个参数 "Not found",让查无数据时显示友好文字而非 #N/A。

XLOOKUP 多条件查找

基本 XLOOKUP 一次只能匹配一个值。若要同时应用两个以上条件——例如找出某部门某员工的薪资——可将布尔测试相乘,或把条件拼接成单一键值:

方法一:布尔相乘(推荐)

=XLOOKUP(1, (A2:A6=E2) * (B2:B6=F2), C2:C6, "Not found")

每个测试返回 TRUE/FALSE,相乘后只有所有条件都成立的行会是 1,XLOOKUP 便定位到该行。

方法二:字符串拼接

=XLOOKUP(E2&"|"&F2, A2:A6&"|"&B2:B6, C2:C6, "Not found")

用连接符(&)把条件与区域合并成单一组合键。同样技巧也适用于同时匹配行与列的双向查找。

XLOOKUP 与 VLOOKUP 深度对比

XLOOKUP

可向左或向右任意查找;无需计算列索引数值;默认为精确匹配(不易踩坑);支持原生 not-found 备用值。

VLOOKUP

只能向右查找;插入或删除列容易导致行索引错乱失效;默认为近似匹配(容易忘记填写 FALSE / 0 精确匹配标记)。

XLOOKUP 与 INDEX MATCH 对比

XLOOKUP

一个函数搞定,不需两层组合;内置 if_not_found 备用值,不必再包 IFERROR;向左、向右、反向查找语法完全一致。

INDEX MATCH

支持所有 Excel 版本,包含没有 XLOOKUP 的 2021 以前版本;用 INDEX 搭配行与列两个 MATCH 可自然实现双向查找。

常见错误与注意事项

  • #N/A — 无精确匹配项;请检查尾部空格、前后空格或文本/数字类型不一致。
  • #VALUE! — lookup_array 与 return_array 的行数或列数大小不一致。
  • 向下拖拽结果错误 — 填充多行前请务必使用 $ 锁定查找区域(如 $A$2:$A$6)。

XLOOKUP 入门实战练习

直接在下方锁定迷你表格中敲入公式验证,获得毫秒级判题反馈,或打开独立全屏页面练习。

打开独立练习题页 →
题目说明
提示 0/4
官方解法 3
–
测试用例
1
2
3
重置
提交
fx
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
正在加载交互式电子表格...
正在准备单元格数据与公式求解引擎
○ 就绪 请在高亮的目标单元格输入公式,然后点「提交」。

相关实战练习推荐

在真实业务情境的迷你电子表格中,尝试更多函数组合与逻辑挑战,加深肌肉记忆。

常见问题

什么是 Excel 的 XLOOKUP 函数?

XLOOKUP 是 Excel 365/2021 与 Google Sheets 中的查找函数:在查找区域(lookup_array)中搜索指定值,并从返回区域(return_array)的相同位置取回结果,可同时取代 VLOOKUP 与 HLOOKUP。

XLOOKUP 的基本语法是什么?

使用 =XLOOKUP(lookup_value, lookup_array, return_array)。前三个参数已覆盖多数精确匹配需求。

XLOOKUP 与 VLOOKUP 有什么区别?

XLOOKUP 可向左或向右查找、无需列索引、默认精确匹配,并内置 if_not_found 参数;VLOOKUP 只能向右查找,插入或移动列时容易出错。

XLOOKUP 比 VLOOKUP 更好吗?

对多数现代工作簿来说是的。XLOOKUP 可向左或向右查找、无需列索引、默认精确匹配,并支持自定义「未找到」提示。

XLOOKUP 与 INDEX MATCH 该用哪个?

XLOOKUP 更简单——一个函数就有未找到时的备用值。若需要支持 2021 以前的旧版 Excel,或需要经典的双向查找(同时匹配行与列),INDEX MATCH 仍是首选。

Google Sheets 支持 XLOOKUP 吗?

支持。Google Sheets 使用与 Excel 相同的六参数语法,包含 if_not_found、match_mode 与 search_mode。

XLOOKUP 怎么做多条件查找?

用布尔相乘:=XLOOKUP(1, (A2:A6=E2)*(B2:B6=F2), C2:C6);或用拼接组合键:=XLOOKUP(E2&F2, A2:A6&B2:B6, C2:C6)。

为什么 XLOOKUP 会出现 #N/A?

通常是没有精确匹配。请检查尾部空格、文本与数字类型不一致,或确认两个数组高度相同。