咱们继续学习XLOOKUP后面三个参数。
第4个参数:未找到时提示
含义:指定找不到有效的匹配项时返回的值; 如果找不到有效的匹配项,同时该参数缺失,则返回错误值#N/A。
这个参数是可选参数,可写可不写。
翻译过来,就是如果写这个参数,找不到对应数据时则显示你写的内容,例如这个参数,写"无",那么当查找不到数据时,单元格则显示"无"这个字,这个参数值一定要加英文双引号。
如果不写该参数,省略这一步,就直接写上英文逗号,那么当找不到对应数据时,单元格则默认显示#N/A,如下图所示,找不到E6糖果对应的数据,于是直接报错#N/A。

若是我们填写这个参数,写"无",再来看一下公式结果,如下图,可以看出,糖果对应的F6单元格直接显示为"无"。

第5个参数:匹配类型
含义:指定匹配类型,默认值为0。
这个参数也是可选参数,表示匹配类型,共有以下4种。
0:精确匹配(默认)。
-1:精确匹配,未找到返回下一个较小项。
1:精确匹配,未找到返回下一个较大项。
2:通配符匹配 。
当第5参数,我们选0时,代表数据要一模一样才返回,找不到就报错#N/A,如下图。
这个公式里的第4个参数,这里选择不填,不填的话,就照上面说过的,直接写上英文逗号。

当我们选-1时,代表优先精确匹配,但找不到对应的数据时,就会自动选一个比它小的最近值,这里说的,是查找值(A列文本)的最近值,而不是数字(B列查找数据)的最近值。
按照Excel汉语拼音首字母规则,A < B < C < D …… < Z,即A最小,Z最大。
查找值 饼干(B) < 果冻(G) < 可乐(K) < 面包(M) < 牛奶(N) < 奶糖(N) < 薯片(S) <糖果(T) <虾条(X)
而我们需要查找的糖果(T),比它小的最近值是薯片(S),所以F6单元格的值取的是薯片的值,即500,如下图。

当我们选1时,代表优先精确匹配,但找不到对应的数据时,就会自动选一个比它大的最近值。按照刚刚说的原理,我们很快能算出,比糖果(T)大的最近值是虾条(X),所以F6单元格的值取的是虾条的值,即200,如下图。

当然,如果查找值本身就是数值时,就自动选一个比它小的最近值和比它大的最近值,这里就没有所谓的拼音规则了。例如下图,需要查找E2到E4对应的提成(为了大家容易分辨,我便把销量改成个位数了~)。

当我们选-1时,优先精确匹配,因为E2在B2到B9的查找区域里,于是精确匹配了,结果是400。之所以是400,而不是400和900,是因为XLOOKUP默认行为是返回第一个匹配项,找到就停,不会继续查找后续匹配项。所以按XLOOKUP按行从上到下依次搜索的规律,F2的提成是400。
但找不到匹配项时,就会自动选一个比它小的最近值,比如E3和E4,并不在B2到B9的查找区域里,所以找不到匹配项,比E3的6小的最近值是5,于是F3的提成是5的提成1000。而比E4的4小的最近值是3,于是F4的提成是3的提成800。
为了加深理解,大家可以试着回想一下,当参数选1时,为什么会出现以下提成?

这是XLOOKUP的模糊查找功能,把第1参数查找值,写成带*或者?的模糊写法。
*代表任意多个字符。
可以代替0个、1个、多个文字/字母/数字。
例如下图:


当我们试着把A8的奶糖改为好奶糖,再来看看结果。

我们发现,F8居然变成了#N/A错误值,为什么呢?因为?既然是一个字符,那么奶?就等于是两个字符,A8原先是奶糖,即两个字符,现在变成了好奶糖,即三个字符,奶?找不到匹配项,只能报错。
而E10本身?奶?,总共三个字符,A8的好奶糖也是三个字符,便匹配上了。
第6个参数:搜索模式
含义:指定搜索方向,默认值为1。
这个参数也是可选参数,表示搜索模式,共有以下4种。
1:从第一项开始搜索(默认)。
-1:从最后一项开始反向搜索。
2:升序二进制搜索。
-2:降序二进制搜索 。
参数值1,就是正向搜索模式,也是默认模式,从查找区域的第一行或第一列开始,依次向下或向右搜索,找到第一个匹配的结果后,立刻停止查找并返回结果。因为是默认模式,所以即便不写此参数,也自动生效。
如E2查找值在B2到B9查找区域内,找到第一个匹配的结果400后就停止了并返回结果400。
而E3和E4查找值不在B2到B9查找区域内,找不到匹配项,因此报错#N/A。
参数值-1,就是反向搜索模式,从查找区域的最后一行或最后一列开始,依次向上/向左搜索,找到第一个匹配的结果后,立刻停止查找并返回结果。
比如G2查找值在B2到B9查找区域内,从下往上找到第一个匹配的结果900后就停止了并返回结果900。

参数值2,二进制搜索,升序专用。
基于二分法的高效搜索算法,它会先定位查找区域的中间值,通过和查找值对比,快速缩小搜索范围,但前提条件是,查找区域必须是升序排列,否则会返回错误结果。
参数值-2,二进制搜索,降序专用。
和上面的逻辑完全一样,唯一的区别是,查找区域必须是降序排列,否则会返回错误结果。
除了排序的要求,还要注意,二进制与通配符不兼容,当第5参数设置为2(即通配符匹配)时,第6参数不能用二进制的2和-2搜索,只能用1或者-1,否则公式会报错。
鉴于这两个参数值2和-2在日常办公中,用得非常少,这里就不展开介绍了。
介绍完了XLOOKUP的这6大参数,虽然参数看起来很多,实际很好记,很好用。 若是简单查询,前3个参数够用了,后面3个参数可以直接全部省略。遇到复杂要求时,再加上后面3个参数,就能满足要求,相较于需要嵌套公式的VLOOKUP,实在很灵活,很强大,其实用习惯了的话,大家可能更喜欢XLOOKUP哦~
夜雨聆风