怎么用xlookup确定一个值,返回多个结果?

不久前,WPS官微发布了一条消息,说是自即日起WPS开始正式支持XLOOKUP函数。很多人就奇怪了,作为一款办公软件,增加个函数不是太正常了?这有啥可激动的?其实能让WPS激动自然是有些道理,理由就是这个XLOOKUP实在..

不久前,WPS官微发布了一条消息,说是自即日起WPS开始正式支持XLOOKUP函数。

很多人就奇怪了,作为一款办公软件,增加个函数不是太正常了?这有啥可激动的?

其实能让WPS激动自然是有些道理,理由就是这个XLOOKUP实在太强了!

目的:通过姓名反查工号

日常工作中我们经常会遇到用姓名查工号的情况,由于原始数据中,工号字段通常是位于姓名之前,因此直接使用VLOOKUP肯定无法得到结果。

通常的办法,是借助IF函数建立一个虚拟数组IF({1,0},B:B,A:A),将工号与姓名临时对调一下,以满足VLOOKUP的操作需求。

不过它的问题就是,对于新手童鞋来说,这个数组太难理解了。

整个语法基本参照了VLOOKUP的习惯,先确定好要查找的内容(G6),然后告诉表格去哪里查找(B:B),最后返回对应列的结果就可以了(A:A)。

相比之下,XLOOKUP的逻辑是不是就清晰多了!

目的:当查询无结果时,显示查无此人

为了防止LOOKUP、VLOOKUP等函数意外出错,我们通常会在函数外围包裹一层IFERROR,用于手工控制出错信息的显示。

不过这种做法一来会让公式变长,二来也不怎么高效。而XLOOKUP的处理方法绝对是简单粗暴,直接将出错信息标在了函数里。高效的同时,也让公式更加简练,就像下面这样:=XLOOKUP(G6,B:B,A:A,查无此人)。

目的:通过工号查询该员工所有信息

编写搜索器时,会在原始数据中批量查询所需的内容。通常有两种解决方法,一是借助VLOOKUP手工确定要查询的列,二是通过COLUMN函数配合VLOOKUP做一个半自动查询器。

那么XLOOKUP有没有更简单的办法呢?答案是有的,方法就是直接填写=XLOOKUP(G8,A:A,B:E)。

语法上依旧沿用了VLOOKUP的逻辑,先是确定好要查找的内容(G8),然后告诉表格去哪里查找(A:A),接下来返回B:E列里的对应信息即可。

由于函数的溢出效应,相邻几个单元格(性别、职务、部门)也会自动填好结果,连拖拽这一步都省去了。

目的:通过姓名和性别两组条件查询员工信息

现实中重名的情况并不少见,当一个条件无法确定一个人时,就要加载第二组条件。

比如本例中,小编就使用了姓名+性别的双重条件验证。对于此类需求,传统的VLOOKUP需要借助IF函数生成一个虚拟数组。而在XLOOKUP之下,上述公式可以直接简化为=XLOOKUP(G7H7,B:BC:C,D:D)。

目的:根据分值为每个人标注等级。

熟悉VLOOKUP的小伙伴,大多知道这个函数最后有一个精确匹配FALSE和近似匹配TRUE的小参数。

其中的近似匹配,就是我们常说的模糊查找。通常来讲,模糊查找主要用作区域数值的界定,比如90-100分为优秀、70-89分为良好,类似这样的分数段筛选,就很适合使用模糊查找。

不过它有一个前提,那就是数值源必须提前使用升序排列,否则无法得到准确结果。

而使用XLOOKUP就不用这么麻烦了,它的第五个参数(输入公式时会有提示)直接提供了0、-1、1、2四种不同匹配条件。

以本例使用的-1为例,它的含义就是当搜索结果达不到目标值499时,会自动向下查找(小于499)。正是借助这样一个选项,我们就轻松配置出了一个业绩等级设定表。

目的:输入产品名称查询该产品的销量、销售额、利润、利润率

在Excel中,除了纵向搜索的VLOOKUP外,还有一个支持横向搜索的HLOOKUP。这两组函数虽然作用不一,但语法却基本相同。

区别是一个在列中查找,一个在行中查找。而我们的XLOOKUP其实也集合了纵向和横向两种查询机制,除了上面讲到的纵向查询外,你还可以通过变换查找区域来实现横向搜索。

具体效果,如上图所示。

目的:快速查询某商品的最新入库价格

很多出入库表格,都需要查找最后一次出入记录。这个看似简单的要求,实现起来却不容易。

通常我们都是使用LOOKUP建立一个虚拟数组,然后再对其进行查找。

但正如前面所言,这一类东东一来不适合新手理解,二来过多的数组函数对于系统性能也是拖累。特别在一些大型表格中,频繁地使用数组函数,会让表格变得异常缓慢。

而XLOOKUP的加入,让这个问题变得简单多了。它的解决方法很简单,直接用一个参数来搞定。

依旧以上文为例,如果想查询某商品的最近一次入库价格,只要在它的第6参数位中,输入参数值-1。而返回的结果,正是该商品的最后一次入库价。

怎么样?看完上面这些案例,是不是有种豁然开朗的感觉?其实在日常使用中,XLOOKUP还有逻辑清晰、语句简练等优势。

举个最简单例子,以往在使用VLOOKUP时,查找范围后面的列数常常要我们手工去数,而XLOOKUP由于直接使用了列标作为返回列,因此也就省掉了这个步骤。

同时由于XLOOKUP还是一个全能型选手,特别对于新手来说更加友好,再不用劳神记忆各种复杂的函数和数组,一个XLOOKUP统统就搞定了!


· 你要在大时代中做个坚强的小人物,在狂欢夜

1、在原始数据中A列有多个“张三丰”,需要提取每个“张三丰”对应的“工号”。

7、将公式下拉,就将所有“张三丰”对应的信息查询出来了。


· 每个回答都超有意思的


  VLOOKUP函数只能返回一个结果,如果想要一对多查询,可以使用其他函数,看下边例子,将部门为A的姓名列举到E列:

只能找到 对应的值 ,即一个值
多个结果的话,可以用VBA做个自定义函数,需要的话追问

本回答被提问者和网友采纳


· 繁杂信息太多,你要学会辨别

下载百度知道APP,抢鲜体验

使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。

之前发了FILTER函数的使用方法,有很多粉丝问到Xlookup函数,其实之前发过的,可能很多人没收到吧,今天再发一次,送给没看到的粉丝们

2019年微软正式推出了Xlookup函数,我们可以把它看做是vlookup的升级版。Xlookup弥补了vlookup的诸多不足,可以说是现阶段最强大的查找函数,最近WPS也更新了xlookup函数。
Xlookup:搜索数据数据区域中的值,然后返回找到的第一个匹配结果。
第一参数(必须参数):lookup_value,想要查找值
第二参数(必须参数):lookup_array,想要在那个数据区域中查找
第三参数(必须参数):return_array,要返回的数据区域,就是结果所在的区域
第四参数(可选参数):if_not_found,找不到结果,就返回第四参数,如果省略第四参数函数默认返回#N/A这个错误值
第五参数(可选参数):match_mode,指定匹配类型
参数为:0 ,精确匹配,未找到结果,返回 #N/A。这是默认选项。参数为:-1,近似匹配,未找到结果,返回下一个较小的项。参数为:1,近似匹配,未找到结果,返回下一个较大的项。参数为:2 ,通配符匹配
第六参数(可选参数):search_mode, 指定要使用的搜索模式
参数为:1,从第一项开始执行搜索。这是默认选项。参数为:-1,从最后一项开始执行反向搜索。参数为:2,根据 lookup_array 按升序排序的二进制搜索。如果未排序,将返回无效结果。参数为:-2,根据lookup_array 按降序排序的二进制搜索。如果未排序,将返回无效结果。
以上就是xlookup的所有参数,虽然参数比较多,但是使用起来却非常方便,下面我们就通过实际的例子 来学习下这个函数
如下图所示,在这里我们想要查找鲁班的语文成绩,只需要将公式设置为:=XLOOKUP(H2,A1:A9,C1:C9)就能找到正确的结果,在这里我们需要注意的是前三个参数是必须参数,后三个参数是可选参数,也就是说前三个参数必须填写,后三个参数可以选择性填写,在普通查找中,一般将其省略即可
Xlookup函数的第四参数可以屏蔽错误值,这样的话就不必再嵌套IFERROR函数来屏蔽错误值了。
比如在这里我们想要查找孙悟空的语文成绩,在数据表中是没有孙悟空的,函数就会返回#N/A这个错误值,但是我们只需要将公式设置为:=XLOOKUP(H7,A1:A9,C1:C9,'')函数就会将错误值屏蔽掉,在这里两个双引号就表示空值
如果你将第四参数设置为:'找不到结果'函数的结果就会返回找不到结果
在之前想要进行横向查找,就需要使用hlookup这个函数,现在xlookup也具备了横向查找的功能,只需要将公式设置为:=XLOOKUP(A10,A1:I1,A3:I3)
通过这个例子需要强调一点的是:第一参数与第二参数的方向与个数都需要一一 对应,否则的话函数也将返回错误值。
通过函数介绍可以知道,我们只需要将xlookup的第五参数设置为2就能进行通配符查找,所谓的通配符就是可以代表任意字符的符号,常用的有2个
使用这个特性,我们可以利用xlookup实现通过关键字查找数据的效果,比如在这里我们将查找值设置为*白,然后只需要将公式设置为:=XLOOKUP(H2,A1:A9,C1:C9,,2)就可以找到李白的语文成绩。
所谓的反向查找就是查找左侧的数据,但是Vlookup是不能查找左侧数据的,所以在进行反向查找的时候我们需要使用利用IF{1,0}来构建二维数组,但是xlookup不存在这样的情况,它是可以查找左侧数据的。
比如在这里,我们想要通过工号查找姓名,只需要将函数设置为:=XLOOKUP(H2,B1:B9,A1:A9),就可以找到姓名
Xlookup函数进行多条件查询也非常的简单,只需要利用连接符号将查找值与查找区域连接起来即可
如下图,张飞是存在重名的,在这里我们想要查找2班张飞的语文成绩,只需要将公式设置为:=XLOOKUP(G2&H2,A1:A9&B1:B9,C1:C9)即可找到正确的结果,在这里就是使用连接符号将姓名与班级连接在一起来查找的
Xlookup函数可以实现设置一次函数,自动查找多列数据的效果,但是有一个缺点:结果列在数据表中必须是连续的。
如下图所示,我们想要查找他们的成绩,只需要在G2单元格中输入公式:=XLOOKUP(F2,A1:A8,B1:D8)后面的数据就会自动显示,需要注意的是我们需要在G2单元格中向下填充公式.
在这里我们需要明白1点,xlookup返回的结果个数,是由第三参数的列数决定的,在这里我们选择了3列数据,所以函数就会返回3个结果。
这个用处不大,主要是为了说明xlookup可以自定义查找方向。Vlookup函数只能从上往下查找数据,而xlookup可以通过设置第六参数实现从下往上查找数据。
比如在这里我们想要求数据最后一次出现的时间,首先我们需要将数据进行升序排序,随后只需要将公式设置为:=XLOOKUP(D2,A1:A25,B1:B25,,,-1)即可,在这里是将第四第五参数直接忽略掉了,直接将第六参数设置为-1
我们需要注意的是:当使用xlookup查找数据遇到重复,函数也仅仅只能返回第一个找到的结果,这点与vlookup一致
以上就是今天分享的全部内容了,xlookup函数的作用还有很多,总之就是vlookup能做的它都能做,vlookup不能做的它还能做,相信在不久的将来它一定能取代vlookup,引领下一个30年

我要回帖

更多关于 多条件查找返回一个值 的文章

 

随机推荐