关注
vlookup反向查找公式(vlookuo反向查找)
vlookup反向查找公式(vlookuo反向查找)
vlookup反向查找公式(vlookuo反向查找)
hello,大家好,今天跟大家详细讲解下vlookup中{0,1}它是如何进行运算,到底如何理解,
它的运用方法可以分为两类,一类适用于条件判断,另一类是用于制造错误值,下面就让我们来详细的讲解下
1. 用于条件判断
{0,1}用于条件判断,我们最常见的要数使用vlookup函数进行反向查找,举例如下
公式:=VLOOKUP(E2,IF({1,0},C2:C10,A2:A10),2,0)
Vlookup进行数据查找,查找值必须在查找区域的列,如果查找值不在查找区域的列,我们就需要用到vlookup的反向查找,它的大致思路是,将查找值使用if函数加上{0,1}数组,构建一个二维的表格,来进行查找,下面就让我们来具体分析下
公式:=VLOOKUP(E2,IF({1,0},C2:C10,A2:A10),2,0)
参数:E2,就是表中的考核得分
第二参数:IF({1,0},C2:C10,A2:A10),构建二维表格
第三参数:2,就是查找数据区域的第2列
第四参数:0,匹配
以上参数中除了第二参数都十分容易理解,下面就是讲解下它的运算过程
首先我们先看下它的实际结果如下图
在excel中0=false,1=true,我们把{1,0}放在if函数的参数中,它实际上代表对和错的条件结果,又因为,{1,0}在大括号中,所以它是一个数组,它会跟每一个元素都发生运算,比如在if的第二参数中它的单元格个数是9个,所以,当if的条件为1时候,他就会得到9个结果,第三个参数也是这个道理以此类推,它的运算结果可以显示为下图
这样的话,我们就构建了一个查找值在列的数据区域,就非常方便我们查找了。
2.制造错误值构建数据
这种比较常见的是我们在有文字与数字混合的字符串中提取出固定长度的字符串,如提取手机号码
公式:=VLOOKUP(0,MID(A2,ROW($1:$30),11){0,1},2,FALSE)
这个函数中
参数:0
第二参数:MID(A2,ROW($1:$30),11){0,1}
第三参数:2
第四参数:false
还是来着重讲解下第三参数,我们先看下mid函数的提取过程与结果
因为mid的函数第二参数为,ROW($1:$30),它是一个1到30的整数序列,所以会对字符串提取30次,为什么到23次就没有结果了呢,因为A2单元格它的字符串个数一共就22个,然后我们将这个结果乘以{0,1}
{0,1}是一个数组,它会跟每个元素都进行运算如上图所示它会运算30次
当文本乘以数字的时候,他就会得到错误值,而mid函数在第7次提取到正确的手机号码,当它乘以{0,1}的时候会得到如图标红区域的二维数组,这样的话我我们用vlookup函数进行提取就非常简单了,
这仅仅是一个单元格的运算结果,以后的都要这么算,所以电脑配置如果不是太高的话,进行数组的运算会十分卡
怎么样,这么讲明白呢,如果还是不太明白,建议看下这篇数组的简单介绍
数组怎么用
我是excel从零到一,关注我持续分享更多excel 技巧
一般情况下,VLOOKUP函数只能从左向右查找。但如果需要从右向右查找,则需要把区域进行“乾坤大挪移”,把列的位置用数组互换一下。
公式:=VLOOKUP(A9,IF({1,0},B2:B5,A2:A5),2,0)
公式剖析:
1、这里其实不是VLOOKUP函数可以实现从右至右的查找,而是利用IF函数的数组效应把两列换位重新组合后,再按正常的从左至右查找。
2、IF({1,0},B2:B5,A2:A5)这是本公式中最重要的组成部分。在EXCEL函数中使用数组时(前提时该函数的参数支持数组),返回的结果也会是一个数组。这里1和0不是实际意义上的数字,而是1相关于TRUE,0相当于FALSE,当为1时,它会返回IF的第二个参数(B列),为0时返回第二个参数(A列)。根据数组运算返回数组,所以使用IF后的结果返回一个数组(非单元格区域):{"张一","A001";"赵三","A002";"杨五","A003";"孙二","A004"}
一般情况下,VLOOKUP函数只能从左向右查找。但如果需要从右向右查找,则需要把区域进行“乾坤大挪移”,把列的位置用数组互换一下。
公式:=VLOOKUP(A9,IF({1,0},B2:B5,A2:A5),2,0)
公式剖析:
1、这里其实不是VLOOKUP函数可以实现从右至右的查找,而是利用IF函数的数组效应把两列换位重新组合后,再按正常的从左至右查找。
2、IF({1,0},B2:B5,A2:A5)这是本公式中最重要的组成部分。在EXCEL函数中使用数组时(前提时该函数的参数支持数组),返回的结果也会是一个数组。这里1和0不是实际意义上的数字,而是1相关于TRUE,0相当于FALSE,当为1时,它会返回IF的第二个参数(B列),为0时返回第二个参数(A列)。根据数组运算返回数组,所以使用IF后的结果返回一个数组(非单元格区域):{"张一","A001";"赵三","A002";"杨五","A003";"孙二","A004"}
作步骤说明:
如下图,要根据“工号”在原始数据表中查找对应的“姓名”。
双击B8单元格,输入公式:
=VLOOKUP(A8,IF({1,0},B1:B5,A1:A5),2,0)
左手按住Ctrl+Shift,右手按下回车运行公式即可。
这主要利用的是IF函数参数数组化来实现的,选中部分空单元格,输入公式:
=IF({1,0},B1:B5,A1:A5)
左手按住Ctrl+Shift,右手按下回车就可以看到通过IF函数将两列值互换了。
类似的,利用CHOOSE()函数也可以实现类似IF()的效果:
=VLOOKUP(A8,CHOOSE({1,2},B1:B5,A1:A5),2,0)
仍然三键运行数组公式,也可以实现VLOOKUP()函数的反向查找。
5如果不用VLOOKUP()函数,可以利用INDEX+MATCH替代方法实现,公式如下:
=INDEX(A1:A5,MATCH(A8,B1:B5,))
这里通过MATCH()函数定位A8所在位置,然后用INDEX()函数取值。
输入
=VLOOKUP(A2,IF({0,1},B:B,C:C),2,0)
公式表示:在C列匹配与A2相同的单元格,并返回对应B列的数据。
版权声明:本文内容由互联。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发 836084111@qq.com 邮箱删除。