分享

「函数说13」VLOOKUP数据逆向查找无能为力?不,学会它一切搞定

 宇宙空间123 2019-08-03

EXCEL进阶课堂 · 函数说 持续更新!

我们将为各位小伙伴提供更加专业、更加精炼、更加实用的EXCEL操作技能,帮助大家轻松解决工作任务,提高工作效率,不再做不停加班的表哥,表姐。

欢迎各位小伙伴转发、点赞、讨论,更欢迎私信获取练习素材,刻意练习才能学有收获。

这是函数说的第13篇教程。

【快速导读】本篇教程将教大家仅利用VLOOKUP函数实现数据向左逆向查找技巧,重点讲解EXCEL中数组的概念。

01 问题引入

在第12篇教程中,进阶君给表哥小王讲解了运用match+index进行数据向左逆向查找的方法,实现了如下图所示的任务要求。

「函数说13」VLOOKUP数据逆向查找无能为力?不,学会它一切搞定

虽然很好地完成了任务,可是小王却不是很开心。

“我最开始想的方法是用VLOOKUP函数来完成,结果现在这个函数来影子都没有看到,说明我最开始的思路是错的。”

看着小王若有所思的样子,进阶君笑着说:前面我们不是说有两种方法吗?第一种方法是用match+index来实现;第二种方法是仅用VLOOKUP函数来实现。

可以用VLOOKUP函数来实现吗?小王顿时来了精神。

02 问题分析

正如上篇教程所言,VLOOKUP函数想实现数据向左逆向查找是困难的。

困难的原因在于:

1.查找数据列必须是查找区域的第一列

2.查找数据列左侧的数据根本就不在查找区域当中

「函数说13」VLOOKUP数据逆向查找无能为力?不,学会它一切搞定

面对这种情况,怎么办呢?于是有一种想法产生了:如果将姓名列人为的放到身份号码列的右侧,那所有的问题不就解决了吗?

「函数说13」VLOOKUP数据逆向查找无能为力?不,学会它一切搞定

如果数据并成上图所示,那么这个问题就变得很简单了。

但是,我们真的要去把数据列所在的位置修改了吗?这样做不是改变了表的结构了吗?而任务要求是不允许我们的去改变表的结构的。

「函数说13」VLOOKUP数据逆向查找无能为力?不,学会它一切搞定

用VLOOKUP函数就需要表有新的结构,而任务要求或实际工作中又不允许改变表的结构,这样的矛盾如何解决?

此时,我们就需要用到EXCEL中的数组。

(一)什么是数组?

所谓的数组是指一组可以用行或列表示的数据。数据的个数为行和列的乘积。

如下图当中就有一个4行3列的数组,共计有12个数据值。

「函数说13」VLOOKUP数据逆向查找无能为力?不,学会它一切搞定

(二)数组的表现形式?

EXCEL中数组的表现形式有两种。

第一种形式:单元格区域形式

这种形式大家都很熟悉,只是以前没有单独提出数组这个概念。

如下图当中A1:C4就是一个单元格区域,也就是一个数组,这个数组有4行3列。

「函数说13」VLOOKUP数据逆向查找无能为力?不,学会它一切搞定

第二种形式:人为构建形式

这种形式,是我们用大括号进行数据组织的形式。在大括号中,分号表示换行,逗号表示换列。

如下图当中,{ 1,2,3;4,5,6;7,8,9 }就是一个为构建的数组,这个数组当中有3行3列。再次强调在大括号中,分号表示换行,逗号表示换列。

「函数说13」VLOOKUP数据逆向查找无能为力?不,学会它一切搞定

这两种形式表现的数据实质是一样的。在一些公式应用当中,我们其实已经发现了这种情况。如下图所示:

「函数说13」VLOOKUP数据逆向查找无能为力?不,学会它一切搞定

「函数说13」VLOOKUP数据逆向查找无能为力?不,学会它一切搞定

(三)数组有什么作用?

数组可以参与运算,可以用来构建隐形的单元格区域,可以用来做很多事情。今天我们就要用数组来构建一个隐形的单元格区域。

前面的分析说,我们用要VLOOKUP函数,就需要把表的结构重新构建:

「函数说13」VLOOKUP数据逆向查找无能为力?不,学会它一切搞定

既然不允许手动去调整,我们就用数组来构建一个新的、隐形的单元格区域。

我们最直接的目的就是交换两列数据的位置,于是我们采用数组的知识来构建。

方法是:if({1,0},数据列1,数据列2)

if函数的作用是判断选择,现在的判断条件是一个数组,于是后面的两个数据列会进行数组运算,根据数组当中1和0的位置来决定结果中谁在前,谁在后。

如:if({1,0},数据列1,数据列2),结果会是数据列1在前,数据列2在后

如:if({0,1},数据列1,数据列2),结果会是数据列2在前,数据列1在后

其中具体的运算过程,进阶君会在另一个系列教程(EXCEL秘传篇)中来讲进行讲解。

进行如图所示的操作,得到这样的数组结果,姓名列跑到了身份证号码列的后面去了。

「函数说13」VLOOKUP数据逆向查找无能为力?不,学会它一切搞定

03 问题解决

第一步:产生身份证号码列在前,姓名列在后的隐藏数组区域。

在G4单元格输入=if({1,0},C2:C9,B2:B9)

第二步:以上步产的隐藏数组区域为查询区域,查找对应身份证号码后姓名列的值。

大家注意,第一步产生了一个隐藏数组区域。这个区域当中,第一列是身份证号码,第二列是姓名,于是我们现在可以用VLOOKUP函数来查询这个对区域当中的第二列的值。

将G4单元格中的公式修改为:=vlookup(F4,if({1,0},C2:C9,B2:B9),2,0)

「函数说13」VLOOKUP数据逆向查找无能为力?不,学会它一切搞定

第三步:在F4单元格中输入身份证号码,检测结果。

操作过程如下动图所示:

「函数说13」VLOOKUP数据逆向查找无能为力?不,学会它一切搞定


本文运用数组的方法,构建了一个聊天的数据区域,然后运用vlookup函数进行查找,从而实现了向左的逆向数据查找。这种方法,小伙伴们get√到了吗?欢迎大家在留言区里面讨论交流。

为方便小伙伴们学习,我们的将原始素材共享出来,获取素材的方法:

第一步:关注 Excel进阶课堂。

第二步:私信 Excel进阶课堂,因为设定的是自动回复,所以内容一定要准确

私信内容:练一练

第三步:根据得到信息打开网盘,找到 第13讲逆向查找 工作簿 自行下载

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多