Excel之Vlookup详解
查找函数之Vlookup
一、基础篇
查找函数大致有choose、lookup、hlookup、vlookup、match、index 6个。这次我想重点总结一下我对vlookup的理解,因为我对excel的兴趣完全是起因于此函数,以及后来我在工作中发现这个函数的作用之大,使用频率之高完全超乎了想象。
Vlookup(找什么,在哪里找,在第几列,怎么找),这是我对这个函数的记忆方法,在这里需要注意的是第二个参数在哪里找,要包含找的内容且一定要在第一列的位置,怎么找其实就是要告诉电脑是精确查找还是模糊查找,不过在工作中90%以上都是要精确查找的。
从上图我们可以看出:我们是要找一个叫赵六的人,在a1:d5的区域里找(注意赵六必须在A列里面),要查看赵六的语文分数,那么我们不难发现语文在a1:d5的区域里是在第二列,所以我们需要在第二列里查找,需要精确查找(用0表示),精确查找也可以默认不写。所以整个公式为=VLOOKUP(F2,$A$1:$D$5,2,0),注意$是为了把该区域锁死,这样下面要找李四的语文成绩的话就可以直接往下拖了。
锁死符号($)在关键时刻也还是起到非常大的作用的,可以解决很多棘手的难题,在这里就不深入讲解了。
二、进阶篇
我们知道Vlookup单独使用功能已经非常强大了,其实它还可以与其他函数嵌套使用发挥出更加强大的功能。下面我将通过几个案例讲解它与其他函数嵌套使用的精妙之处。
案例1、如何反向或者在列数很多的情况下进行查找匹配
在基础里讲过要查找的区域里第一列必须要包含要查找的内容,但是有很多情况查找的内容会在后面或者列数太多,我们有不能改变原始表格的结构,这时候就该choose闪亮登场了
例如上图,姓名列在分数的后面去了,在不改变表格结构的情况下使用vlookup似乎很难完成,这个时候就使用choose函数将D列和B列重新组成一个新的表格,这样问题就迎刃而解了,注意D:D表示的是整个D列的意思。至于choose函数,我这里也不多讲了,以后有机会可单独再介绍。结果为=VLOOKUP(F2,CHOOSE({1,2},D:D,B:B,),2,0),最后一个参数0也可以不写,默认为精确查找。
关于与choose的嵌套使用我还想举一个难度系数更大,但是使用频率也很高的例子,例如下图1班和2班同时有个叫张三的,我们该如何匹配出他们的成绩呢。
我们可以把班级和姓名连接起来后再进行匹配,区域也是先连接起来再用choose函数重新整合成一个新的表格。
公式为=VLOOKUP(E2&F2,CHOOSE({1,2},$A$2:$A$8&$B$2:$B$8,$C$2:$C$8),2,0)
在此需要特别注意的是这个涉及到数组,我们把公式写完后需要同时按住ctrl+shift+enter才行,否则往下拖时会出错。
案例2、根据多条件计算匹配相关值
有时候我们查找的内容后面可能还会有几种小分类,我们在匹配的时候还需要考虑小分类的情况,例如下图,我们要根据右边的表格匹配出左边的表格的年终奖,不仅有职位之分还有工龄之分。这个时候就需要利用if来对小分类进行判断。
这样通过if的配合就把这个问题很完美的解决了。
结果为=VLOOKUP(B2,IF(C2<=5,$F$1:$G$4,$I$1:$J$4),2,0),最后一个参数0也可以省略
案例3、嵌套match函数进行多列匹配
有时候我们需要匹配多列数据且顺序与原表并不一致,这是后就可以搭配match函数使用了,具体通过下面的一个例子来说明:
如上图需要在左图里找出赵六和李四的化学、数学、语文(没有任何顺序),这个时候用的公式为=VLOOKUP($I2,$A$1:$G$5,MATCH(J$1,$A$1:$G$1,0),0),注意match函数可以在某一个区域里找出一个元素的具体位置,通过这个位置正好作为vlookup的第三参数。除此之外,还需要特别注意的是改公式里多处用到了锁死符号,一定要看清楚锁死符号的位置,它在不同的位置锁死的地方就完全不一样了,如果在字母前则锁死的是列,如果在数字前则锁死的是行,如果两种前都有则锁死的是单元格或者区域。大家可以根据不同的需要进行锁死。
案例4、vlookup进行跨表甚至跨工作薄的运用
在很多情况下我们可以准备一个单独的匹配表或者是一个单独的匹配工作薄保存在电脑里供以后一直使用。其实用法跟普通用法没啥区别。下面用两个小示例来说明:
a、跨表匹配
上图中想把右边表格里城市的所属省份通过左边匹配表里的内容匹配过来就属于跨表匹配公式为=VLOOKUP(A2,省份匹配表!A:B,2,0),注意区域前需要加上表名以及“!”
b、跨工作薄匹配
上图中想把右边工作薄里城市的所属省份通过左边工作薄里的内容匹配过来就属于跨工作薄匹配公式为 =VLOOKUP(A2,[省份匹配表.xlsx]省份匹配表!$A:$B,2,0),注意区域前需要加上工作薄和名工作表名以及“!”
案例5、关于数字在文本状态和数字状态下的匹配
a、通过数字查找文本
公式为=VLOOKUP(D2&””,$A$1:$B$9,2,0),查找内容后面需要连接“”将数字转为文本
b、通过文本查找数字
公式为=VLOOKUP(–K2,$H$1:$I$9,2,0),查找内容前面需连接”—“将文本转为数字,或者在查找内容后面+0也可以,=VLOOKUP(K2+0,$H$1:$I$9,2,0)。
案例6、把多张工作表的内容合并到一张表格来
例如有一个工作薄,里面有每个学生的成绩分数,但是我想把他们整合到一张表格里来。不用vba或者其他插件,我们该如何操作呢。
我们之前学习过跨表匹配,通过这个思路立马就想到用vlookup进行多次跨表匹配是不是就可以了呢。下面看我们是如何操作:
在这里我们用到了一个新的函数indirect,这个函数相当于是一个翻译官,它可以将一个单元格的地址直接翻译成它的内容,地址为A2的单元格的内容是”张三”,与后面连接起来就是“张三!a:b”,这表示的就是一张叫张三的表里的A列到B列。由此便灵活自动解决了我们需要多次跨表选择区域的难题。是不是很妙呢。
案例7、关于模糊匹配
例如我们已知不同的分数它所对应的级别如左边表格所示,我们要如何才能查找出右边表格各位同学的级别呢
这个时候几乎没有前面例子中的一一对应的关系,根本无法进行精确匹配。所以这里我们就可以用到模糊匹配,公式为=VLOOKUP(E2,$A$1:$B$5,2,1),注意最后的参数1表示模糊匹配,千万不能省略。在这里还需要说明一下的是模糊匹配它是包含最小值的。
三、总结
以上只是vlookup函数的很小一部分的用法,但是也几乎全盖了它的所有知识点,在实际工作中还可以根据与不同的函数的嵌套使用,发挥更大的作用,这需要我们慢慢的积累以及对其他基础函数的理解。