Excel XLOOKUP()函数的用法(附带实例)
在 EXCEL 匹配查找中,VLOOKUP() 是最经典的函数之一,但是它的使用存在明显短板,如不能逆序匹配、查找不到内容时不支持定义输出内容。而现在有了 XLOOKUP 函数,不仅支持逆序匹配,还支持找不到时返回指定内容。
XLOOKUP() 函数的语法格式如下:
需要说明的是,如果公式中的参数带有“[]”,表明该参数为选填(可不填)。例如,XLOOKUP() 函数的后 3 个参数都是选填,所以都是带有“[]”符号。
【实例】根据右侧表中的“工号”,在左侧的表中匹配查找相应的姓名。可在 I11 单元格中输入以下公式:
右侧表需要查找的是“工号”,返回“姓名”列;而“工号”在左侧表中是第 2 列,“姓名”在第 1 列,明显不能使用 VLOOKUP() 函数,因为 VLOOKUP() 函数要求查找列必须为查找范围的第 1 列,而使用 XLOOKUP() 函数就能很好地解决这个问题。
第 1 个参数为查找的工号(H11),第 2 个参数为查找工号的数组范围($D$11:$D$20),第 3 个参数为要返回的数组区域($C$11:$C$20)。这种方法不受逆序的影响,所以实用性更强。具体示意图如下图所示。
当查找不到内容时,可以设置第4个参数为特定值。例如找不到时,返回“查无此人”,则可以将 L11 单元格中的公式调整为:
XLOOKUP() 函数的语法格式如下:
XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])参数说明:
- lookup_value(必需):要查找的值。
- lookup_array(必需):用于搜索 lookup_value 的数组或区域(查找数组)。
- return_array(必需):需要返回结果对应的数组或区域(返回数组)。
- [if_not_found]:未找到匹配项时返回的值;若省略,默认返回 #N/A。
-
[match_mode] 用于指定匹配模式:
- 0 或省略:精确匹配(默认值);
- -1:精确匹配或下一个较小项;
- 1:精确匹配或下一个较大项;
- 2:通配符匹配。
-
[search_mode] 用于指定搜索模式:
- 1 或省略:从首项到末项正向搜索(默认值);
- -1:从末项到首项反向搜索;
- 2:二进制搜索(要求 lookup_array 升序);
- -2:二进制搜索(要求 lookup_array 降序)。
需要说明的是,如果公式中的参数带有“[]”,表明该参数为选填(可不填)。例如,XLOOKUP() 函数的后 3 个参数都是选填,所以都是带有“[]”符号。
【实例】根据右侧表中的“工号”,在左侧的表中匹配查找相应的姓名。可在 I11 单元格中输入以下公式:
=XLOOKUP(H11,$D$11:$D$20,$C$11:$C$20)结果如下图所示:

右侧表需要查找的是“工号”,返回“姓名”列;而“工号”在左侧表中是第 2 列,“姓名”在第 1 列,明显不能使用 VLOOKUP() 函数,因为 VLOOKUP() 函数要求查找列必须为查找范围的第 1 列,而使用 XLOOKUP() 函数就能很好地解决这个问题。
第 1 个参数为查找的工号(H11),第 2 个参数为查找工号的数组范围($D$11:$D$20),第 3 个参数为要返回的数组区域($C$11:$C$20)。这种方法不受逆序的影响,所以实用性更强。具体示意图如下图所示。

当查找不到内容时,可以设置第4个参数为特定值。例如找不到时,返回“查无此人”,则可以将 L11 单元格中的公式调整为:
=XLOOKUP(K11,$D$11:$D$20,$C$11:$C$20,"查无此人")结果如下图所示:
