首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

XLOOKUP函数比VLOOKUP好用在什么地方?两者有什么区别

XLOOKUP最先出现在Office365上面,随后Excel2021版本也更新了这个函数,功能很强大,以至于很多人表示分分钟秒杀VLOOKUP函数。

今天我们就来对比下XLOOKUP函数与VLOOKUP函数的异同点与优劣势。

表达式

XLOOKUP函数一共有6个参数。分别是查找值、查找区域、返回区域、容错值、匹配类型和搜索模式,前3个为常用参数,后3个参数可省略,但每个都有其独特的用法,下面一一介绍。

VLOOKUP函数只有4个参数,从函数表达式上看后者要简洁一点。

常规精准匹配

下图中匹配员工的年龄字段,F2单元格输入公式:

E2是查找值,A列为查找范围,F列是返回值所在列。

可以看到XLOOKUP函数的查找区域和返回区域可以分开输入,不像VLOOKUP,返回区域必须在查找区域的后方,所以在逆向查找上,XLOOKUP函数不受丝毫影响。

逆向匹配

下图中,学号字段在姓名字段前面,如果是VLOOKUP函数,需要根据IF构建中间数组,而XLOOKUP可以直接输入。

规避错误值

XLOOKUP函数的参数4——容错值,在省略的情况下,函数在未匹配到数据的时候同VLOOKUP一样返回#N/A,可以输入参数4,直接规避错误值。E2输入公式:

在查找不到的时候,函数会直接返回“无此人”。

而VLOOKUP若要规避错误值,只能结合IFNA或者IFERROR函数实现。

多个字段匹配顺序一致

下图中,根据数据源,匹配员工的性别、年龄和所在城市字段,这些字段与数据源字段顺序保持一致。直接在G2单元格输入公式:

可以看到返回结果会自动填充到后面两列,这里参数3返回区域我们框选的是B:D列,也就是3列数据,XLOOKUP亦会返回多列数据,并往后自动填充。

VLOOKUP函数要实现多字段的匹配,需要结合COLUMN函数使用,同时需要注意单元格的相对引用与绝对引用。

多个字段匹配顺序不一致

如果多字段顺序不一样,需要嵌套一个XLOOKUP函数,动态变更返回区域。G2单元格输入公式:

VLOOKUP函数实现此功能需要搭配MATCH函数。

近似匹配

XLOOKUP的参数5默认为0,也就是完全匹配,它还存在其它3个可选值,分别是1、-1和2,解释如下图所示,其中为 -1 时,相当于VLOOKUP函数的近似匹配。

下图中,根据左边匹配表,匹配评级字段,可以看到XLOOKUP函数返回了正确的结果,而VLOOKUP函数85/88分评级划分出错,这是因为匹配数据源B列未进行升序处理。

我们知道VLOOKUP函数的近似匹配,需要对数据源进行升序处理,否则无法返回正确的结果。

而XLOOKUP函数却突破了这个限制,不需要对数据源进行排序。

同理,当参数5等于1时,在函数未匹配到数值时,会返回较大的项。

通配符匹配

XLOOKUP的参数5等于2时,函数才会启动通配符匹配功能,否则,XLOOKUP是不支持通匹配(结果返回#N/A)。

多条件匹配

下图中,利用月份+姓名两个字段进行匹配,G2单元格输入公式:

XLOOKUP函数支持数组运算,参数2直接用“&”将两列链接。

VLOOKUP函数则需要搭配IF函数实现此功能。

横向匹配

匹配一行数据,F2输入公式:

在这里XLOOKUP函数实现了HLOOKUP函数的功能,横向匹配。

参数6搜索模式

参数4可以规避错误值、参数5指定匹配模式,最后一个参数6决定搜索模式

一共有4个可选值,默认(省略)状态时为1,表示从第一项开始搜索,-1时从后往前搜索,2与-2为二分法搜索,需要对数据源进行排序。

举个例子,下图中"张飞"出现了2次,XLOOKUP函数参数6等于 -1时,函数会从后往前查找,所以最先查找到的最底部的数据,这种用法适用于查找最后一次出现的记录。

等于2或-2时,采用二分法查找,这种算法的时间复杂度为logN,在数据量比较大的情况下,查找速度有明显优势。

劣势的地方

函数向下不兼容,是XLOOKUP目前最大的劣势。

目前XLOOKUP函数仅存在于OFFICE2021和365版本(WPS最新版也支持),2019及以下版本都是没有这个函数的。

意味着高版本向低版本传输文件时,表格会出现错误(莫要带公式、粘贴为数值)。

整体来看XLOOKUP函数相较于VLOOKUP函数操作步骤更加简洁,实现相同的效果,函数更加简短。

但版本不兼容以及用户操作习惯的问题,多数人还是更加倾向于VLOOKUP函数,毕竟针对日常的数据匹配,VLOOKUP函数早已深入人心。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20221130A00WXJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券