Excel XLOOKUP函数怎么用
讲清XLOOKUP的参数写法、常见用法和它与VLOOKUP的区别,包括向左查找、自定义未找到提示和从后往前查找,并给出动手前的检查和做完后的核对方法。
在 Excel 里按工号、姓名或产品编号从另一张表取数,是很多人每周都要做的事。以前大多数人用 VLOOKUP,但它只能从左往右找,而且返回列要靠手动数“第几列”,表格一调整就容易出错。XLOOKUP 是较新版本的 Excel 提供的查找函数,专门解决这些问题。
这篇文章写给已经用过 VLOOKUP、或者刚开始学查找函数的读者。读完后,你可以写出一个完整的 XLOOKUP 公式,知道每个参数是什么意思,还能处理找不到、向左查找和重复值这几种常见情况。
XLOOKUP 怎么用?一句话结论
XLOOKUP 的基本思路是:拿一个值去一列里找,找到后返回同一行另一列中的内容。只要写出查找值、查找区域和返回区域,公式就能成立;其余参数按需要再加。
| 你的情况 | 推荐做法 | 原因 |
|---|---|---|
| 从左边一列找,返回右边一列的内容 | 直接用 XLOOKUP 的前三个参数 | 写法直观,不用数列号,列增减也不受影响 |
| 需要返回左边的列 | 把返回区域设为左边那一列 | VLOOKUP 做不到这一点,XLOOKUP 可以 |
| 查找值在多行中重复出现,要最后一条 | 第 6 参数设为-1 | 默认从上往下找,会停在第一条 |
| 找不到时想显示提示而不是错误值 | 第 4 参数填写提示文字 | 默认返回#N/A,不够直观 |
| 所用的 Excel 版本没有 XLOOKUP | 继续用 VLOOKUP 或 INDEX 加 MATCH 组合 | 老版本不支持新函数,公式在其他人电脑上可能打不开 |
开始之前:先确认这几点
动手前,先看清三件事,可以少走很多弯路。
- 版本是否支持。在单元格里输入“=XL”,如果下拉提示里出现 XLOOKUP,说明当前版本可用。老版本没有这个函数,公式会显示为无效名称,换成 VLOOKUP 或 INDEX 加 MATCH 即可。
- 查找值和查找区域的数据类型是否一致。一边是文本数字、另一边是数值,查找就会失败,即使肉眼看上去一样。这是常见的#N/A 原因。
- 查找区域和返回区域的行数是否相同。两个区域必须一一对应,例如都从第 2 行到第 200 行。行数不同,公式会报错。
- 你的数据是否有重复值。如果同一个工号出现多次,需要决定取第一条还是最后一条,这会决定第 6 参数怎么填。
在 Excel 里用 XLOOKUP 查找数据的步骤
下面的例子是这样一个场景:表一 A 列是工号,B 列是姓名,C 列是部门;表二里有工号,需要在 D 列根据工号填上部门。
- 在表二的目标单元格(比如 D2)输入“=XLOOKUP(”,开始写公式。
- 第 1 个参数是查找值,选中表二里的工号单元格,例如 B2。它表示“拿什么去找”。
- 第 2 个参数是查找区域,选中表一的工号列,例如表一的 A2:A200。它表示“在哪一列里找”。
- 第 3 个参数是返回区域,选中表一的部门列,例如表一的 C2:C200。它表示“找到后取哪一列的内容”。
- 第 4 个参数是未找到时显示的内容,直接输入引号括起来的提示文字,例如“未找到”。不写的话,找不到时会显示#N/A。
- 第 5、6 个参数通常省略。省略第 5 个参数表示精确匹配,这是常用的情况;需要从后往前找重复值时,第 6 个参数写-1。
- 输入右括号后按回车,确认结果。再向下拖动填充柄复制公式,注意把查找区域和返回区域的引用改成带美元符号的绝对引用,例如$A$2:$A$200 和$C$2:$C$200,否则下拉后区域会跟着移动。
- 抽查几行,确认结果与原表一致,再用于正式工作。
如果需要向左查找,只要把返回区域换成左边的列即可。例如用姓名查工号,公式写成=XLOOKUP(E2,B2:B200,A2:A200,"无此人"),结果返回工号。这是 VLOOKUP 难以直接做到的。
做完后逐项核对
公式填完不代表结果就对,建议逐项检查一遍。
| 检查项 | 怎么看 | 有问题怎么办 |
|---|---|---|
| 是否出现#N/A 或提示文字 | 看结果列中有没有错误值或“未找到” | 确认源表确实有该值;检查两边是否有多余空格、文本与数值格式不一致 |
| 区域行数是否一致 | 查看查找区域和返回区域的起止行 | 把两个区域调整为相同的行范围,否则公式会报错 |
| 下拉后区域是否移动 | 拖动填充后点开几个单元格看引用 | 给区域加上美元符号,锁定行和列 |
| 重复值的结果是否符合预期 | 对照源表,看是否取到了正确的那一条 | 第 6 参数设为 1 取第一条,设为-1 取最后一条 |
| 数字是否被存成文本 | 单元格左上角是否有绿色三角,或用 ISTEXT 函数判断 | 统一为数值格式后再查找 |
如果检查后发现数据本身有错误,比如工号录入重复或漏填,应先修正源表,公式本身不会替你纠正数据。
📊 核心对比:XLOOKUP 与 VLOOKUP 的主要区别
两个函数都能查找取数,但在几个关键点上不一样。
| 对比项 | XLOOKUP | VLOOKUP |
|---|---|---|
| 查找方向 | 可以向左、向右查找 | 只能在查找区域的第一列查找,向右返回 |
| 返回列的指定方式 | 直接选择返回区域 | 需要填写第几列的数字,列增减后容易出错 |
| 找不到时的处理 | 第 4 参数直接指定提示内容 | 通常需要配合 IFERROR 等函数 |
| 默认匹配方式 | 默认精确匹配 | 默认近似匹配,精确匹配需写 0 或 FALSE,容易漏写 |
| 搜索方向 | 可从前往后,也可从后往前 | 只能从上往下 |
| 版本兼容性 | 需要较新版本 | 几乎所有版本都支持 |
简单说,新版本的表格建议优先用 XLOOKUP;需要给多人共用、对方版本未知的文件,VLOOKUP 或 INDEX 加 MATCH 更稳妥。
❓ 常见问题(FAQ)
1. XLOOKUP 和 VLOOKUP 哪个更好用?
看你的 Excel 版本和使用场景。版本支持时,XLOOKUP 在向左查找、列增减和未找到提示方面更省事;文件需要在旧版本中打开时,VLOOKUP 的兼容性更好。
2. 公式一直返回#N/A,是什么原因?
常见的原因有三个:查找值在源表中确实不存在,两边的数据类型不一致(文本与数值),或者有多余的空格。先用剪裁或查找功能检查,再决定是修正数据还是填写第 4 参数。
3. XLOOKUP 能一次返回多列内容吗?
可以。返回区域选择多列时,结果会自动横向展开到相邻单元格,这是 XLOOKUP 的一个特点。注意展开的目标区域要留空,否则会提示无法展开。
4. 能按两个条件同时查找吗?
可以。常见做法是新增一列辅助列,把两个条件用&连接起来,例如=A2&B2,然后用连接后的值作为查找区域和查找值。这种方法在各个版本中都容易理解。
📝 总结
XLOOKUP 用查找值、查找区域、返回区域三个参数就能完成大多数查找,第 4 参数可以设置未找到时的提示,第 6 参数可以控制从哪一端开始找。动手前确认版本和数据格式,做完后检查#N/A 和区域行数,就能避免大部分错误。


