vlookup+if实现逆向查找
一般VLOOKUP是在一个区域内,在首列查找自己的目标内容,并从左到右返回指定列数所对应的内容,这里有个关键点,是从左到右,查找的目标内容只能是选择区域的第一列,如下图,根据姓名查找基础工资。
但有时我们的数据并不会如我们所愿,比如我们需要根据姓名查找编号,而编号是在左侧,违背了VLLOKUP函数正常的逻辑,此时我们就需要将A列和B列进行调换。
手动调换当然没问题,但我们的数据是不能随便更换位置的,这就需要使用函数将区域进行对调,if函数,就是我们的解决办法。
VLOOKUP+IF是逆向查找的经典组合,我们先理清IF的逻辑,为了便于理解,我们只取前5行数据进行测试
以上公式的目的是,如果条件成立,就返回B区域的内容,条件不成立返回A区域的内容(成立和不成立都是区域,所以不管是返回谁,都不是一个内容,而是一组内容,切记)。
有朋友可能会有疑问了,IF函数的第一参数不应该是个判断吗,为什么直接输入数字1呢?
我们按F9试试
IF函数第二参数就是B区域的内容,按F9正好就是B区域的内容,这里先不说为什么,我们将第一参数改为0试试
按F9查看结果
得到的是编号这个区域,因此我们得出一个结论,IF函数第一参数,凡是1及以上的单个数字,都代表条件成立,0则代表条件不成立,因为1的逻辑值是TRUE,0的逻辑值是FALSE,而IF第一参数不管做什么判断,比如:A1=“表格屋”,按F9,如果A1内容为表格屋,则返回的是逻辑值TRUE,因此上述中直接输入1,则直接代表条件成立。
以上顺便给大家补了补IF函数的真实逻辑,但IF得到的只是一个区域,如果用VLOOKUP函数,我们需要至少两列区域才能实现逆向查找,所以我们必须要让IF函数得到两列的结果,而不是一列,这个怎么做呢?
这时我们就需要利用{1,0}这个数组了,上述中IF函数我们是单独用1或者0去得到单列的区域,这里用{1,0}可以对IF的第一参数判断两次,先判断1,再判断0,得到就是两个区域,
按F9得到结果
构建二维数组,逗号代表列,也就是横向的,分号代表行,也就是纵向的,上图中编辑栏的数组,第一个是姓名,第二个是编号,正好将A列和B列进行的对调。
使用IF将A列和B列的区域进行了转换,我们就需要嵌套在VLOOKUP中的第二参数内
将做好的IF区域转换的公式复制,替换掉VLOOKUP中的B:C
最终得到姓名对应的编号。
完成。
结语:
◆其实本例中用MATCH+INDEX的组合更简单,但多学一个方法就能多一个思路,多一个知识点就能多条路,后期在接触更深度的问题思维将更开阔,希望本篇对大家有所帮助!
◆学而不用则殆,希望大家学习后利用到自己的工作中,哪怕是点滴的应用,也是一种进步。给自己的工作带来非常大的方便。
资料来源:
微信公众号【Excel表格屋学堂】