网站首页 > 技术文章 正文
上一章介绍了常用查询函数Vlookup,在使用中大家会发现这个函数存在一些缺陷,比如反向查找和多条件查找时需要手动构造查找范围、无法忽略错误值、只能返回第一个被找到的值等。今天,我们一起来看看Vlookup的升级版Xlookup,看看它如何解决处理这些问题。
Xlookup函数语法:=Xlookup(查找值,查找区域,要返回的区域,[如果找不到时返回的结果],[匹配方式],[搜索模式])
XLOOKUP,可以在一列中查找,并从另一列中的同一行返回结果,而不管返回列位于查找列的哪一侧。
通过几个案例一起见识一下Xookup的强大之处。
案例1:查找葡萄的单价
在L5单元格中输入,=XLOOKUP(K5,D4:D14,E4:E14)。
Xlookup在查找区域中找到葡萄在第3行,并把要返回的区域的第3行的值作为结果返回。
案例2:查找白菜的销售总额
这种需求,如果用Vlookup也能解决,可以用IF构造一个数组,返回白菜的单价和销量,外面再嵌套一个PRODUCT求乘积。Xlookup就比较直接、简单,一个函数搞定。
在L6单元格中输入,=XLOOKUP(K6,D4:D14,E4:E14*F4:F14)。找到白菜的位置,返回单价*销量的结果数组对应的行。
案例3:查找香蕉的产品编码
要返回的区域位于查找区域的左侧,遇到这种情况,Vlookup就需要手动构造数组做为返回区域,之前分享了2种方法,IF和CHOOSECOLS,比较麻烦。Xlookup不用考虑查找区域与返回区域的位置问题。
在L7单元格中输入,=XLOOKUP(K7,D4:D14,B4:B14)。
案例4:查找水果品类下西红柿的销量
多条件查找也很简单,用&把查找区域按条件顺序连接起来就可以了。
在L7单元格中输入,=XLOOKUP(K8,C4:C14&D4:D14,F4:F14)。
案例5:查找黄瓜的销量
在产品名称中并不存在黄瓜,如果使用Vlookup就会返回一个#VALUE!错误,但有些时候,不想看到错误,想返回一个提示,比如“未找到“,Vlookup就需要在外面嵌套一个IFERROR函数。看Xlookup如何解决?
在L8单元格中输入,=XLOOKUP(K9,D4:D14,F4:F14,"未找到")。是不是特别强大!。
这里使用了Xlookup的第4个参数,如果找不到时返回的结果,自定义找不到时的返回结果,可以是文本、数字、逻辑值等。
三、近似匹配
案例6:查找产品的提成比例
在G4单元格中输入,=XLOOKUP(F4,$N$5:$N$8,$O$5:$O$8,,-1),双击填充。
这里使用了Xlookup的第5参数。第5参数有4个选项:
0 - 完全匹配。如果未找到,则返回 #N/A。这是默认选项。
-1 - 完全匹配。如果没有找到,则返回下一个较小的项。
1 - 完全匹配。如果没有找到,则返回下一个较大的项。
2 - 通配符匹配,其中 *, ? 和 ~ 有特殊含义。
本案例中第5参数选择-1,这意味着函数将查找完全匹配项,如果找不到匹配项,则返回下一个较小的项。
案例7:查找以"油"开头的产品单价
在L11单元格中输入,=XLOOKUP(K11&"*",D4:D14,E4:E14,,2),第5参数选择2,意味着使用通配符匹配。
案例8:查找葡萄的最后一笔的销量
在Lookup兄弟群中,只Lookup是从下往上查找的,用LOOKUP(1,0/(D4:D15=K12),F4:F15),可以完成这个案例,但多一种方法,多一种选择,看看Xlookup怎么搞定。
查找最后一笔,就需要从下往上搜索,找到第一个葡萄的销量,这里就要使用Vlookup的第6参数。
第6参数有4个选项,今天就介绍前2个:
1 - 从第一项开始执行搜索。这是默认选项。
-1 - 从最后一项开始执行反向搜索。
在L12单元格中输入,=XLOOKUP(K12,D4:D15,F4:F15,,,-1),个人觉得这公式更直观、更容易理解。
案例9:根据选择的产品编码和查找的字段,返回对应的结果。
要返回的区域是不固定的,根据选择的查找字段确定,这个问题,使用Vlookup+Match可以搞定,今天要分享的是Xlookup+Xlooup嵌套的方法。
在K17单元格中输入,=XLOOKUP(I17,B4:B15,XLOOKUP(J17,C3:F3,C4:F15))。
第二个Xlookup根据选择的字段,返回对应的列,做为第一个Xlookup的第三参数。
关注我,学习更多办公技巧!
猜你喜欢
- 2025-09-12 每天一个Python库:lxml全面实战指南,爬虫解析速度翻倍
- 2025-09-12 每天一个 Python 库:pandas 办公利器,数据处理效率翻倍!
- 2025-09-12 前端入门——html 表单_html做前端
- 2025-09-12 机器视觉——opencv 双目标定操作完整版
- 2025-09-12 2小时快速搭建一个高可用的IM系统
- 2025-09-12 Word 神器 python-docx_python中的word
- 2025-09-12 WPS 高效数据提取神器:TAKE 函数,让数据筛选告别繁琐
- 2025-09-12 使用高斯混合模型(GMM)分割图像_高斯混合模型的常见应用领域
- 2025-09-12 IE法提取网页数据_快速提取网页数据
- 2025-09-12 利用Excel函数快速巧妙制作工资条
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)