Microsoft365Excel怎样用XLOOKUP函数精准查找数据
XLOOKUP是Microsoft365Excel的查找函数,通过指定查找值、查找区域和返回区域精准返回对应结果,支持自定义未找到提示,避免#N/A错误。语法为=XLOOKUP(查找值,查找区域,返回区域,"未找到"),还可实现多列返回和通配符模糊查找,比VLOOKUP更灵活。
XLOOKUP函数是Microsoft 365版Excel中一个非常强大的查找函数,它能根据你提供的查找值,精准地返回同一行中对应的目标内容。简单来说,你只需要告诉它“找什么”、“在哪里找”、“返回哪里的结果”,它就能高效完成任务,再也不用担心复杂的嵌套公式。最常用的写法是 =XLOOKUP(查找值,查找区域,返回区域,"没找到"):先点你要出结果的单元格,依次选好查找值、查找列、返回列,最后加个未找到的提示,就能避免弹出烦人的#N/A错误。下面,我们将一步步带你掌握这个实用函数。
当前操作软件:Microsoft Excel。软件版本:Microsoft 365。XLOOKUP是比较新的查找函数,如果使用 WPS 或旧版 Excel,需要先确认是否支持该函数。
第一步:准备查找值和数据表
把你要搜索的关键词单独放在一个空白单元格里,再核对下数据表,确保有一列是专门用来匹配的,比如员工编号、商品编码、订单号、姓名这类唯一标识。要做精准查找的话,查找区域里最好别有多余的空行、合并单元格、前后多余空格,不然公式写得再对,也可能搜不到结果。

小提示: 在准备数据时,可以先用TRIM函数清理数据中的多余空格,确保数据格式一致,避免因格式问题导致查找失败。
第二步:在结果单元格输入 XLOOKUP
点选你要放结果的空白单元格,直接敲 =XLOOKUP( 就行。Excel会自动弹出参数提示框告诉你填写顺序,先填查找值,再填查找区域、返回区域。别一上来就选整张表,XLOOKUP要求查找区域和返回区域都是单独的一维行/列,要一一对应。

常见问题: 为什么输入公式后只显示公式本身,没有计算结果?
答案: 这通常是因为单元格格式被设置为“文本”了。你可以右键点击该单元格,选择“设置单元格格式”,然后选择“常规”或“数字”,再重新编辑公式即可。
第三步:指定 lookup_value 查找值
第一个参数 lookup_value 就是你要拿去匹配的内容,既可以直接敲文本、数字,也可以引用单元格。日常办公更推荐直接引用单元格,比如选B2当查找值,之后你要换别的编号,结果会自动刷新,不用改公式。

小提示: 如果你要查找的内容是文本,并且包含特殊字符,比如星号(*)或问号(?),Excel会将其视为通配符。如果你要查找的是文本字面含义,可以尝试在这些字符前加上波浪号(~)进行转义。
第四步:指定 lookup_array 和 return_array
第二个参数 lookup_array 填你要扫一遍找内容的那一列,第三个参数 return_array 填你要提取结果的那一列。注意这两个区域的行数必须完全一样,比如公式 =XLOOKUP(B2,B5:B14,C5:C14) 表示拿B2的员工编号,在B5到B14的范围内搜索,找到匹配项后返回C5到C14里同一行的姓名。

第五步:补上 if_not_found 未找到提示
要是你只填前三个参数,遇到找不到内容的情况,Excel就会直接弹出#N/A报错。第四个参数 if_not_found 可以自定义提示文字,比如写 =XLOOKUP(B2,B5:B14,C5:C14,"未找到员工"),搜不到的时候直接出中文提示。比在外层多套一层IFERROR函数简单清楚多了,别人接手你的表格也能一眼看懂。

小提示: 如果希望显示一个空白单元格,可以将 if_not_found 参数设置为 ""(一对英文双引号),这样就不会显示任何内容,看起来更整洁。
第六步:需要近似或反向查找时再改模式参数
做普通精准查找的话,第五、第六个参数完全不用写,XLOOKUP默认就是走精确匹配逻辑。只有你有特殊需求的时候再加:比如要按区间匹配税率、价格档位,就改 match_mode 参数;要从最后一行数据往前搜找最后一条匹配记录,就改 search_mode 参数。别随手乱填这两个参数,业务规则确实需要的时候再加就行。

XLOOKUP 函数语法和参数
完整语法如下:
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
| 参数 | 是否必填 | 作用 | 常用写法 |
|---|---|---|---|
lookup_value |
必填 | 要查找的值 | B2、"A1008" |
lookup_array |
必填 | 在哪一列或哪一行里查找 | B5:B14 |
return_array |
必填 | 找到后返回哪一列或哪一行的结果 | C5:C14 |
if_not_found |
可选 | 没找到时显示的内容 | "未找到" |
match_mode |
可选 | 匹配方式;省略时为精确匹配 | 0 精确;-1 找较小项;1 找较大项;2 通配符 |
search_mode |
可选 | 搜索方向或搜索方式 | 1 从前往后;-1 从后往前;2 升序二分;-2 降序二分 |
常见错误怎么判断
遇到#N/A报错,大概率是查找值根本不存在、查找值前后带多余空格,或者查找区域里的内容格式不统一,比如一边是数字一边是文本格式的数字。先用 TRIM 清理空格,再核对两边的内容格式是不是一致就行。
遇到#VALUE!报错,基本是查找区域和返回区域的大小对不上,比如查找区域选了10行,返回区域只选了9行,重新把两个区域框成相同行数就能解决。
要是返回的结果串了行,先检查查找区域里有没有重复值。XLOOKUP默认只返回第一个匹配到的内容;如果你要拿最后一次出现的记录,把 search_mode 写成 -1 就可以。
常见问题: 为什么我的公式返回了#VALUE!错误,但区域大小明明一致?
答案: 这可能是由于拼写错误或参数顺序错误导致的。请仔细检查你的公式,确保 lookup_array 和 return_array 的引用是准确的,并且没有选错或漏选区域。
两个扩展示例
想一次性返回多列结果的话,直接把返回区域框选成连续多列就行,比如公式 =XLOOKUP(B2,B5:B14,C5:D14,"未找到"),会自动把姓名、部门两列结果直接溢出填充。注意目标单元格右边不能有其他内容,不然会被溢出报错挡住。
想做模糊的通配符查找,就写 =XLOOKUP("*华东*",A2:A100,D2:D100,"没有匹配",2)。这里把 match_mode 设成2,星号就代表任意长度的字符,适合按区域、备注关键词、产品名片段这类内容做模糊搜索。
先把查找值、查找区域、返回区域这三个必填项填对,再按需加未找到提示和特殊模式参数就行,XLOOKUP的公式比老的VLOOKUP好读很多,也完全不用怕返回列在查找列左边的问题。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。















