用好Xlookup函数,查询引用不再烦恼,条件及逆向查询统统搞定
yuyutoo 2025-01-02 20:10 3 浏览 0 评论
Lookup以及Vlookup函数,是Excel中应用最广泛的函数,但在2019年,微软公布了Xlookup函数,但只能在Office 365版本中使用;如果你使用的是版本较低的Office,也可以在新版的WPS中使用,和VLOOKUP函数相比,只是将字母V变成了X,但其功能确发生了很大的变化。
功能:在某个范围或数组中搜索匹配项,并通过第二个范围或数组返回相应的项,默认情况下使用精准匹配。
语法结构:=Xlookup(查询值,查询值范围,返回值范围,[未查询到值时的返回值],[匹配模式],[搜索模式])。
解读:
1、 参数“查询值”、“查询值范围”、“返回值范围”很好理解,就是字面意思,其中“值”就是指定的字段或单元格地址,“范围”就是单元格的区域。
2、参数“未查询到值时的返回值”是指:在查询值范围中未找到要查询的值时,返回的指定值,在Vlookup函数中,如果查询不到指定的值,则返回#N/A,但在Xlookup中,可以指定具体的值,如果省略则返回#N/A。
3、参数“匹配模式”共有4种,分别为0、-1、1、2。其中0为精准匹配;-1为精准匹配或下一个较小的项;1为精准匹配或下一个较大的项;2位通配符匹配;省略时默认为精准匹配。
4、参数“搜索模式”共有4种,分别为1、-1、2、-2。其中1为从第一项到最后一项全部搜索;-1为从最后一项到第一项搜索;2为二进制文件搜索(升序模式);-2为二进制文件搜索(降序模式)。省略时默认从第一项到最后一项全部搜索。
如果要用好Xlookup函数,参数中后3个参数代码的意思是必须要掌握的,可以不用强迫记忆,在使用时根据系统的联想功能填充即可。
下面我们从具体的案例了解和掌握Xlookup函数的用法。
一、普通查询。
目的:根据员工姓名查询对应的月薪。
方法:
在目标单元格中输入公式:=XLOOKUP(J3,C3:C12,H3:H12)。
解读:
1、此方法中应用了Xlookup必须的3个参数,其省略的参数全部按照默认的值执行。
二、多条件查询。
如果只有如下图的基础数据,该如何查询“李丽”的“月薪”呢?
通过对数据源的分析,我们不难发现,“李丽”有2个人,除了性别不同外,其它基础信息均相同,此时,我们要精准的查询李丽的月薪,就需要增加条件。即通过姓名和性别两个条件来查询。
目的:通过员工姓名和性别查询对应的月薪。
方法:
在目标单元格中输入公式:=XLOOKUP(I3&J3,B3:B12&D3:D12,G3:G12)。
解读:
如果此功能用VLOOKUP函数去实现,公式该如何去编辑了?但如果用Xlookup函数,条件及数据区域之间只需用“&”符号链接即可,是不是非常简单?
三、逆向查询。
目的1:根据员工的姓名查询对应的工号。
方法:
在目标单元格中输入公式:=XLOOKUP(J3,C3:C12,B3:B12)。
解读:
用Xlookup逆向查询时,只需将对应的数据范围填写到对应的参数区域即可,不需要重构数组等操作。
四、未找到查询内容时返回指定的内容。
目的:如果查询不到相关人员的信息,则返回“查无此人”。
方法:
在目标单元格中输入公式:=XLOOKUP(J3,C3:C12,H3:H12,"查无此人")。
解读:
如果不指定第4个参数,则默认返回值为错误代码#N/A。指定第4个参数后,公式和数据的可读性更强。
五、精准查询或向下匹配。
目的:查询等于或低于指定月薪的最高月薪员工姓名。
方法:
在目标单元格中输入公式:=XLOOKUP(J3,H3:H12,C3:C12,,-1)。
解读:
此用法的关键在于第5个参数,在前文中我们已经介绍过,“匹配模式”共有4种,当为-1时为精准匹配或下一个较小的项,也就是返回等于或小于当前值的最大值。
六、精准查询或向上匹配。
目的:查询等于或高于指定月薪的最低月薪员工姓名。
方法:
在目标单元格中输入公式:=XLOOKUP(J3,H3:H12,C3:C12,,1)。
解读:
如果明白了第5个示例,第六个示例也就很容易理解了,其关键还是在第5个参数,当参数值为1时为精准匹配或下一个较大的项,也就是返回等于或大于当前值的最小值。
七、从数据库的末尾逆向查询。
目的:查询产品最后一次的销售单价。
方法:
在目标单元格中输入公式:=XLOOKUP(J3,C3:C12,D3:D12,,0,-1)。
解读:
此用法的关键在于第6个参数,在前文中我们已经介绍过,“搜索模式”共有4种,当为-1时为从最后一项到第一项搜索,即从数据库的末尾逆向搜索。如果要从数据库的第一条记录开始查询,则将第6个参数修改为1或省略即可。
八、一对多查询。
目的:根据产品编号查询对应的所有信息。
方法:
在目标单元格中输入公式:=XLOOKUP(J3,B3:B12,C3:G12),并用Ctrl+Shift+Enter填充。
解读:
由于返回的时数组区域,所以必须用Ctrl+Shift+Enter填充。
最美尾巴:
本节课内容中我们重点介绍了Xlookup的用法,其实上述功能也可以用VLOOKUP或Lookup等函数完成,但具体该如何实现了,欢迎大家在留言区讨论哦!
相关推荐
- 国内外注塑机及电脑密码大全(常见注塑机通用密码)
-
一、国外注塑机(日本、德国等)东洋注塑机万能码:9422345日精注塑机密码:222|7777DAMEG注塑机密码:000000000新泻注塑机密码:241650|261450住友注塑机密码:...
- 并发编程实战来咯(并发编程的艺术和并发编程实战)
-
提到并发编程,就不得不提C++ConcurrencyinAction(SecondEdition)(《C++并发编程实战第2版》)啦!《C++并发编程实战第2版》英文原版&中文译版看到这个...
- 无锁队列Disruptor原理解析(无锁队列应用场景)
-
队列比较队列...
- 无锁CAS(附无锁队列的实现)(cas是一种无锁算法)
-
本文所有代码对应的Github链接为:https://github.com/dongyusheng/csdn-code/tree/master/cas_queue...
- Linux高性能服务器设计(linux 服务器性能)
-
C10K和C10M计算机领域的很多技术都是需求推动的,上世纪90年代,由于互联网的飞速发展,网络服务器无法支撑快速增长的用户规模。1999年,DanKegel提出了著名的C10问题:一台服务器上同时...
- 浅谈Go语言的并发控制(go语言 并发)
-
前言本文原创,著作权归...
- Datenlord |Etcd 客户端缓存实践(etcd 数据存储)
-
简介和背景...
- 无锁编程——从CPU缓存一致性讲到内存模型
-
缓存是一个非常常用的工程优化手段,其核心在于提升数据访问的效率。缓存思想基于局部性原理,这个原理包括时间局部性和空间局部性两部分:...
- 如何利用CAS技术实现无锁队列(cas会锁总线吗)
-
linux服务器开发相关视频解析:...
- Kotlin协程之一文看懂Channel管道
-
概述Channel类似于Java的BlockingQueue阻塞队列,不同之处在于Channel提供了挂起的send()和receive()方法。另外,通道Channel可以...
- 详解C++高性能无锁队列的原理与实现
-
1.无锁队列原理1.1.队列操作模型...
你 发表评论:
欢迎- 一周热门
-
-
前端面试:iframe 的优缺点? iframe有那些缺点
-
带斜线的表头制作好了,如何填充内容?这几种方法你更喜欢哪个?
-
漫学笔记之PHP.ini常用的配置信息
-
其实模版网站在开发工作中很重要,推荐几个参考站给大家
-
推荐7个模板代码和其他游戏源码下载的网址
-
[干货] JAVA - JVM - 2 内存两分 [干货]+java+-+jvm+-+2+内存两分吗
-
正在学习使用python搭建自动化测试框架?这个系统包你可能会用到
-
织梦(Dedecms)建站教程 织梦建站详细步骤
-
【开源分享】2024PHP在线客服系统源码(搭建教程+终身使用)
-
2024PHP在线客服系统源码+完全开源 带详细搭建教程
-
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)