最近这几个月,XLOOKUP震惊了Excel界,传言三头六臂无所不能,一个人把LOOKUP全家兄弟姐妹的活都给抢了。最开始我是不以为意的,但是相关的信息越来越多,我终于忍不住,今天去买了一套office365,发现还是没有,查了消息才知道需要加入office预览体验计划,又折腾了半天,终于XLOOKUP出现在我的函数列表里,怀着激动的心情,开始写这篇文章。

先放一个总结,就是:艾玛!真香!

但是,香是香了,可是大多数使用非365版的office的朋友暂时还用不上XLOOKUP,活还是要干的,咋办?在这里我整理了一些XLOOKUP函数的功能以及通过其他函数实现的办法,正好可以以XLOOKUP为线索,系统的讲一下LOOKUP家族的常见玩法。

本着喜新厌旧的性格,先介绍一下新人

=XLOOKUP(lookup_value,lookup_array,return_array,[match_mode],[search_mode],[if_not_found])

XLOOKUP函数一共6个参数,前3个为必填参数,后3个选填参数,一般默认值时可以省略。

lookup_value:查询值

lookup_array:查询区域

return_array:返回值区域

match_mode:匹配方式。有4个值可以选:0/省略,精确匹配;-1,精确匹配或下一个较小项;1,精确匹配或下一个较大项;2,通配符匹配。

search_mode:查询方式。1,正序查询,从上到下,类似于vlookup的玩法;-1,倒序查询从下往上,类似于lookup的玩法,2和-2没玩过,是二进制文件的正序以及倒序查询。

if_not_found:查询不到的返回值。看到这里,我才知道,失业的不光是VLOOKUP,IFERROR和IFNA也跟着失业了,以往VLOOKUP等函数查询不到结果的时候,会返回错误值#N/A,我习惯用IFERROR屏蔽错误值,但是在XLOOKUP这里,只需要把IFERROR里面第二参数填的内容填在XLOOKUP的第六参数里面就可以了,如果不填,查询不到依旧会返回#N/A。这感觉就像加多宝和王老吉打架,把和其正给打死了,这冤不冤啊!

下面来继续讲讲这一家子的玩法

一、单条件查找

这是VLOOKUP最擅长干的活了,但是XLOOKUP又有什么特别的呢?

=XLOOKUP(H9,$H$2:$H$5,$K$2:$K$5,0,1,"找不到")

这里为了演示,我把6个参数全部填满了,但其实第四第五参数是可以省略的:

=XLOOKUP(H9,$H$2:$H$5,$K$2:$K$5,,,"找不到")

如果不需要填第六参数:

=XLOOKUP(H9,$H$2:$H$5,$K$2:$K$5)

如果不使用XLOOKUP,那么使用VLOOKUP,LOOKUP,INDEX+MATCH都可以实现,这里介绍最常用的VLOOKUP用法:

=IFERROR(VLOOKUP(H15,$H$2:$K$5,4,0),"找不到")

可以看到,为了实现和XLOOKUP第六参数一样的功能,这里用到了IFERROR,也可以用IFNA。

LOOKUP玩法:

=LOOKUP(0,1/(H9=$H$2:$H$5),$K$2:$K$5)

在这里看,XLOOKUP和LOOKUP家族其他成员相比,并没有什么优势,反而好像更复杂一些,6个参数看着都头晕,要他干嘛呢?下面就要展示真正的技术了,如果要查询的不是一列数据,而是要返回多列数据把后面的1-12月都填满该怎么办呢?

二、查询返回多列

接着上面的说,如果返回多列数据,XLOOKUP终于要体现出优越性了。

=XLOOKUP(H9,$H$2:$H$5,$K$2:$V$5)

从图上可以看到,点击填充数据的单元格的时候,后面的单元格也一起框出来了,这就是office的新功能,动态数组溢出,返回值为单个时和之前一样,返回值为数组时,自动溢出向右或者向下填充。公式只在第一个单元格里面。

然而这个活没有XLOOKUP怎么干呢?

方法一:VLOOKUP+MATCH

=VLOOKUP($H14,$H$2:$V$5,MATCH(K$13,$H$1:$V$1,),)

这里第三参数使用MATCH函数生成,如果确定返回数据和查询数据表头完全一致,那么第三参数可以直接改为COLUMN(D:D):

=VLOOKUP($H14,$H$2:$V$5,COLUMN(D:D),)

方法二:有没有更简单的办法?LOOKUP来了:

=LOOKUP(1,0/($H$2:$H$5=$H14),K$2:K$5)

这里的用法与VLOOKUO+COLUMN一样,也是表头完全一致的情况下才可以用关键是K$2:K$5使用行绝对引用列相对引用。

可以看出,到这一步XLOOKUP的优越性就体现出来了,语法简单,不需要嵌套其他函数,但是如果没有XLOOKUP,LOOKUP的语法也比较简单。

三、多条件查询

日常当中经常会遇到多条件查询的情况,以往需要使用VLOOKUP+IF数组公式来实现,或者使用LOOKUP。而使用XLOOKUP就简单多了:

=XLOOKUP(I9&J9,$I$2:$I$5&$J$2:$J$5,$K$2:$V$5)

使用VLOOKUP:

=VLOOKUP($I14&$J14,IF({1,0},$I$2:$I$5&$J$2:$J$5,K$2:K$5),2,)

使用LOOKUP:

=LOOKUP(1,0/(($I14=$I$2:$I$5)*($J14=$J$2:$J$5)),K$2:K$5)

这是LOOKUP常用的多条件查询的使用方法,相乘表示且的关系,等于AND,相加表示或的关系,等于OR的用法。

可以看出,对于多条件查询,VLOOKUP和LOOKUP虽然可以实现,但是语法嵌套关系比XLOOKUP复杂得多,而且逻辑关系,相对引用和绝对引用的使用,可能不熟悉的朋友会很头疼,但是如果要两个条件满足其一即可的情况下,LOOKUP就比XLOOKUP和VLOOKUP简单得多了。

四、横向查询

在LOOKUP家族中,HLOOKUP像是清高孤傲的大家闺秀,一般很少露面,但是她的工作,除了INDEX+MATCH能掺和,一般没人抢饭碗,INDEX+MATCH毕竟写起来复杂,HLOOKUP的工作还是很稳定。但是这次XLOOKUP的到来,连HLOOKUP的饭碗也被抢了。

通过月,查询对于行的值:

=XLOOKUP(K$8:V$8,K$1:V$1,$K3:$V3)

这里也是利用动态数组溢出,把K9单元格的内容向右溢出

HLOOKUP实现方法:

=HLOOKUP(K$13,$K$1:$V$5,ROW(3:3),)

第三参数使用ROW函数产生,和前面VLOOKUP里面用的COLUMN一个道理。看起来,还是XLOOKUP使用起来简单。如果结合多条件查询,XLOOKUP函数的优势更明显。

五、模糊查询,根据分数判定等级

=XLOOKUP(B2:B30,H2:H6,J2:J6,-1,)

这里,第四参数-1,表示从小到大升序匹配,用了XLOOKUP动态数组自动溢出功能以后,简直不要太爽!爽到停不下来!再也不用担心相对引用和绝对引用搞错了!

如果使用VLOOKUP模糊匹配,也可以实现:

=VLOOKUP(B2,$H$2:$J$6,3,1)

VLOOKUP当中,是否绝对引用就很重要了,第四参数1表示模糊匹配,VLOOKUP模糊匹配需要查询数据升序排列

还可以用LOOKUP:

=LOOKUP(B2,$H$2:$H$6,$J$2:$J$6)

可以看出LOOKUP语法也比较简单

以上查询数据都是升序排列,如果是降序,那么就会出错:

这个时候,XLOOKUP只需要把第四参数改为1:

=XLOOKUP(B2:B30,H2:H6,J2:J6,1,)

其他两位,就很难搞定了。

到这里,LOOKUP家族的多数常用功能就讲的差不多了,可以看到,XLOOKUP可以算是把全家的饭碗都给抢了,而且衔着金钥匙出生的XLOOKUP凭借动态数组的加成,大大简化了语法以及对绝对引用的要求。总结起来就两个字:

真香!!!!

最后,如果你有其他思路,欢迎和我分享,如有Excel使用的问题需要解决,也欢迎留言或者私信交流,

我会的,我会尽量回复大家;

我不会的,我去学会后再分享给大家;

我学不会的,我尽量推荐大神来回答。

我就是个菜鸟,也希望能帮到在这条路上更多的你,不写公众号,不引流,不卖课程,单纯的交流学习。

——————————分割线———————————

收藏是赞同的五倍,各位,点个赞再走啊!

endpointimpl怎么填参数_这是一篇VLOOKUP函数家族主要用法的合集,XLOOKUP来了!真香!但是,没有office365吃不着怎么办?...相关推荐

  1. python数据参数_零基础学习python数据分析——函数的参数

    原标题:零基础学习python数据分析--函数的参数 上一节课中我们讲了python的函数定义,Python的函数定义非常简单,但灵活度却非常大.除了正常定义的必选参数外,还可以使用默认参数.可变参数 ...

  2. 自定义条件查询_数据查询不止有vlookup函数,自定义zlookup函数查询操作更高效...

    Excel数据查询,相信大家首先会想到vlookup函数.毋庸置疑vlookup函数在Excel数据查询中作用是非常的强大.但是它也有一些不能实现的数据查询. 如上图所示,我们需要根据人员的出现次数, ...

  3. python3的格式化用法_浅析python3字符串格式化format()函数的简单用法

    format()函数 """ 测试 format()函数 """ def testformat(): # format()函数中有几个元素, ...

  4. endpointimpl怎么填参数_App拉新:以老拉新活动怎么做?

    虽然利用老用户来拉新用户这种活动方式已经比较老套了,但是这种方式依然可以为App带来很多的流量和用户,并且有概率实现用户裂变式的增长. 以老拉新这种拉新获客模式,主要是源于用户的分享行为,有些App会 ...

  5. endpointimpl怎么填参数_python爬虫19 | 爬虫遇到需要的登录的网站怎么办?用这3招轻松搞定!...

    你好 由于你是游客 无法查看本文 请你登录再进 谢谢合作 当你在爬某些网站的时候 需要你登录才可以获取数据 咋整? 莫慌 小帅b把这几招传授给你 让你以后从容应对 那么 接下来就是 学习 python ...

  6. python中list作为函数参数_在python中list作函数形参,防止被实参修改的实现方法

    0.摘要 我们将一个list传入函数后,函数内部对实参修改后,形参也会随之改变.本文将主要介绍这种错误的现象.原因和解决方法. 1.代码示例 def fun(inner_lst): inner_lst ...

  7. python 函数调用 不允许关键字参数_你所不知道的Python|函数参数的演进之路

    原标题:你所不知道的Python|函数参数的演进之路 函数参数处理机制是Python中一个非常重要的知识点,随着Python的演进,参数处理机制的灵活性和丰富性也在不断增加,使得我们不仅可以写出简化的 ...

  8. java sort 第二个参数_详解java Collections.sort的两种用法

    Collections是一个工具类,sort是其中的静态方法,是用来对List类型进行排序的,它有两种参数形式: public static > void sort(List list) { l ...

  9. python中什么是关键字参数_如何使用python语言中函数的关键字参数的用法

    一般情况下,在调用函数时,使用的是位置参数,即是按照参数的位置来传值:关键字参数是按照定义函数传入的参数名称来传值的.那么,关键字参数怎么使用? 工具/原料 python pycharm 截图工具 W ...

最新文章

  1. View绘制原理 —— 画在哪?
  2. C# 在PDF中绘制动态图章
  3. 关于.NET编译的目标平台(AnyCPU,x86,x64) (转)
  4. 【深度学习】CNN神经网络应用(用于亚洲大黄蜂分类)
  5. 数据中心暖通设计若干思考
  6. 谷歌数据中心采用机器人销毁硬盘驱动器
  7. 同一个页面两个aside标签ID重复问题导致的功能缺失
  8. Java8-本地缓存
  9. 深入理解javascript
  10. (78)FPGA时钟激励(forever)
  11. Oracle中group by用法
  12. Google+ 为什么会死?
  13. linux查看二进制文件乱码
  14. OpenGL with QtWidgets:材质、光照贴图
  15. 《深度学习技术图像处理入门》看书知识点总结
  16. 阿里P6、P7、P8、级别需要多少年的工作经验,还是因能力而定?
  17. 【问题解决】QT报错 undefined reference to `__imp__ZN11QSerialPortD1Ev‘
  18. HBuilderX 开发工具
  19. 涨停缩量平台调整选股策略(附筛选python代码)
  20. mysql.data.dll 位置_MySql.Data.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家...

热门文章

  1. .NET Core 2.0 Preview2 发布汇总
  2. 20分钟完成Mac上的 LNMP 环境部署,优雅·高效开发(Docker方式)
  3. PHP中路由和rewrite的使用
  4. vi/vim 三种模式及命令 (简单粗暴,轻松搞懂)
  5. Android之gravity=“center_vertical“和layout_gravity=“center“的效果
  6. linux c之access方法介绍
  7. Android之SurfaceView简介(一)
  8. 链表之单链表约瑟夫问题(一)
  9. geotif 添加坐标_python – 如何获取geotif中单元格的坐标?
  10. 静止的人如何看待高速运动的球?