在使用Excel的过程中,我们经常需要从某些工作表中查询有关的数据复制到另一个工作表中,而这几个工作表中的数据的顺序是不完成一样的,并不能直接复制粘贴,这时候就需要用到查找函数。而查找函数中,用得最多的要数VLOOKUP,下面就详细的来讲解下VLOOKUP函数的用法。
1.根据QQ号查找昵称
=VLOOKUP(D2,$A$2:$B$10,2,FALSE)
内功修炼:
VLOOKUP语法为:=VLOOKUP(查找值,区域,区域中第N列,查找模式)。
查找模式:FALSE(0)代表精确查找,TRUE(1)代表模糊查找(省略也是模糊查找)。
2.屏蔽查找错误值
如上图所示,当查找的值不存在时,会出现“#N/A”的错误值,这时候看起来很不美观哟。那么如何屏蔽掉“#N/A”呢?这时可以使用容错函数IFERROR,如果是Excel 2013或以上版本,还可以使用IFNA,该函数专门用于处理“#N/A”错误。
=IFERROR(VLOOKUP(D3,$A$2:$B$10,2,FALSE),"") 或
=IFNA(VLOOKUP(D2,$A$2:$B$10,2,FALSE) ,"")
函数语法如下:
=IFERROR(表达式,错误值要显示的结果)
=IFNA(表达式,错误值要显示的结果)
说白了,这两个函数就是将错误值显示为你想要的结果,不是错误值就返回原来的值。
3.按顺序返回多列对应值
如上图所示,我们要返回两列的数据,可以通过修改第三参数,返回各项的对应值:
=VLOOKUP(A16,$A$2:$G$13,2,0)
=VLOOKUP(A16,$A$2:$G$13,3,0)
如果项目比较少,更改几次也没什么关系,但是如果当项目多时,却会十分不方便。
这时可以使用ROW、COLUMN产生行列号,从而得到1、2、3、n的值。如:
=VLOOKUP($A16,$A$2:$G$13,COLUMN(),0)
4.按不同顺序返回多列对应值
如上图所示,COLUMN就派不上用场了,是不是只能手动更改第三个参数了呢?答案当然是否定的,我们要相信Excel的超能力,也许只是我们自己不知道或者一时想不到。Excel查找与引用函数里面还有一个功能强大的MATCH函数,可以更改为:
=VLOOKUP($A16,$A$2:$G$13,MATCH(B$15,$A$1:$G$1,0),0)
MATCH函数的语法如下:
=MATCH(查找值,区域,排列顺序),排列顺序一共有三个值,1代表升序排列,0代表任意顺序排列,-1代表降序排列,默认为1。
5.VLOOKUP逆向查找
VLOOKUP帮助中提到其只能按照首列进行查找,不能逆向查找,既然如此,就得想办法将非首列的区域转换为首列。如何转换呢,这时就要使用IF函数的高级用法了,即数组函数,这里不详细讲解,之后会有专门的专题讲解。如下:
=IFNA(VLOOKUP(D2,IF({1,0},$B$2:$B$10,$A$2:$A$10),2,0),"")
6.VLOOKUP多条件查询
同样,VLOOKUP帮助中提到其只能进行单一条件查找,不能进行多条件查找。通过使用IF函数来重新构造区域,就可以实现多条件查询。如要通过身份证和姓名两个条件来查询民族:
公式如下:
=IFNA(VLOOKUP(A16&B16,IF({1,0},$A$2:$A$13&$B$2:$B$13,$E$2:$E$13),2,0),"") ,最后需要按Ctrl+Shift+Enter组合键(数组公式)结束。
7.根据第一个字符查找
函数为:=VLOOKUP(D2&"*",A:B,2,0)。
说明:星号(*)是通配符,代表所有字符;问号(?)代表一个字符。
8.根据区间判断成绩等级
如图,通过添加辅助列的方式可以很轻松的实现:
=VLOOKUP(E2,A:C,3)
如果不使用辅助列的话,需要结合多个函数来实现,下面给出公式,大家有兴趣可以自行研究。
=VLOOKUP(E2,IF({1,0},--LEFT($B$2:$B$5,FIND("-",$B$2:$B$5)-1),$C$2:$C$5),2)
只要掌握了以上8条技巧,基本上所有的查询问题都能解决了。