Excel 的 XLOOKUP 怎么用
比 VLOOKUP 更好用的查找函数:不用数列号、可以向左查、找不到时能自定义返回值。语法与常见坑。
XLOOKUP 是 Excel 近年最重要的函数更新之一,解决的正是 VLOOKUP 的几个老毛病:要数列序号、插入列就错位、只能向右查、找不到就报 #N/A。
基本语法
=XLOOKUP(查找值, 查找数组, 返回数组, [未找到时返回], [匹配模式], [搜索模式])
- 查找值:要查什么,比如某个产品编号。
- 查找数组:在哪一列/行里找,通常是编号列。
- 返回数组:找到后要返回哪一列,直接选整列即可,不用数字。
- 未找到时返回:可填「未找到」或空字符串,避免满屏 #N/A。
三个典型用法
- 常规查找:
=XLOOKUP(A2, 产品表!A:A, 产品表!E:E, 「未找到」),按编号取价格。 - 反向查找:返回数组放在查找数组左边也能用,VLOOKUP 做不到这一点。
- 区间匹配:匹配模式填 -1 可以做「按区间取值」,比如按销售额区间定提成比例。
和 VLOOKUP 的对比
- 不用数列号,插入新列不会错位。
- 默认精确匹配,不需要记第四个参数填 FALSE。
- 可以一次返回多列,返回数组选多列即可实现「一次查出整行」。
- 性能在大数据量下通常更好,因为不需要整表扫描。
常见问题
提示 #NAME? 是什么原因?
版本不支持。XLOOKUP 需要 Microsoft 365 或 Excel 2021 及以上,WPS 新版本也支持。老版本只能用 INDEX+MATCH。
查找值明明存在却返回未找到?
多为格式不一致:一边是文本、一边是数字,或有多余空格。用 TRIM 清理,或把两边统一转成文本。
能一次返回整行吗?
可以,返回数组直接选整行(如 B2:F2 对应的整列区域),公式会自动溢出到相邻单元格。
一句话总结:把 VLOOKUP 的列序号换成直接选列,XLOOKUP 就学会了;版本不够就用 INDEX+MATCH 替代。