最新

Excel 的 XLOOKUP 怎么用

比 VLOOKUP 更好用的查找函数:不用数列号、可以向左查、找不到时能自定义返回值。语法与常见坑。

XLOOKUP 是 Excel 近年最重要的函数更新之一,解决的正是 VLOOKUP 的几个老毛病:要数列序号、插入列就错位、只能向右查、找不到就报 #N/A。

基本语法

=XLOOKUP(查找值, 查找数组, 返回数组, [未找到时返回], [匹配模式], [搜索模式])

  • 查找值:要查什么,比如某个产品编号。
  • 查找数组:在哪一列/行里找,通常是编号列。
  • 返回数组:找到后要返回哪一列,直接选整列即可,不用数字。
  • 未找到时返回:可填「未找到」或空字符串,避免满屏 #N/A。

三个典型用法

  1. 常规查找:=XLOOKUP(A2, 产品表!A:A, 产品表!E:E, 「未找到」),按编号取价格。
  2. 反向查找:返回数组放在查找数组左边也能用,VLOOKUP 做不到这一点。
  3. 区间匹配:匹配模式填 -1 可以做「按区间取值」,比如按销售额区间定提成比例。

和 VLOOKUP 的对比

  • 不用数列号,插入新列不会错位。
  • 默认精确匹配,不需要记第四个参数填 FALSE。
  • 可以一次返回多列,返回数组选多列即可实现「一次查出整行」。
  • 性能在大数据量下通常更好,因为不需要整表扫描。

常见问题

提示 #NAME? 是什么原因?

版本不支持。XLOOKUP 需要 Microsoft 365 或 Excel 2021 及以上,WPS 新版本也支持。老版本只能用 INDEX+MATCH。

查找值明明存在却返回未找到?

多为格式不一致:一边是文本、一边是数字,或有多余空格。用 TRIM 清理,或把两边统一转成文本。

能一次返回整行吗?

可以,返回数组直接选整行(如 B2:F2 对应的整列区域),公式会自动溢出到相邻单元格。

一句话总结:把 VLOOKUP 的列序号换成直接选列,XLOOKUP 就学会了;版本不够就用 INDEX+MATCH 替代。