日常工作中经常需要对数据进行查询引用,vlookup函数是工作中使用率较高的查询函数之一,熟练使用vlookup函数能够在查询引用数据中运用自如,提高工作效率。
vlookup函数语法解析
语法结构:
vlookup(lookup_value, table_array, col_index_num, [range_lookup])
童鞋们不要一看这个语法就蒙圈了,其实也不难,翻译过来就是:
vlookup(查找值,查找区域,结果所在查找区域的列序号,模糊查找还是精确查找)
这么一看是不是简单多了?
下面根据案例来实践一下
vlookup单条件查找
看下图,我们需要根据给定的姓名查找出对应的销量
在e2输入公式:=vlookup(d2,$a$2:$b$9,2,0)
无论数据源有多大,都能快速把想要的数据查找出来
公式说明:
查找值:指定查找目标“小螃蟹”,所以下一步就要指定从哪个区域中进行查找
查找区域:查找值必须要在查找区域的首列,查找区域要包含返回的结果,小螃蟹在a列的姓名区域,所以选择$a$2:$b$9
列序号:它是返回值在查找区域中的列数,比如我们的返回值是销量,那么$a$2:$b$9区域,销量属于第几列呢?很明显 是第2列,所以写上2
查找方式:模糊or精确查找,如果值为1或true表示模糊查找,如果值为0或false表示精确查找
vlookup多条件查找
单个条件查找是工作中经常使用的,但如果需要同时满足多个条件进行查找 怎么办? 如下案例,我们需要同时满足两个条件,查询出姓名和产品对应的销量
在g2单元格输入数组公式,按ctrl shift enter 组合键结束公式
=vlookup(e2&f2,if({1,0},$a$2:$a$10&$b$2:$b$10,$c$2:$c$10),2,0)
公式说明:
首先我们查找值为e2&f2就是把姓名和产品连接在一起得到 “小螃蟹冰箱”
查找区域使用if({1,0},$a$2:$a$10&$b$2:$b$10,$c$2:$c$10) 把姓名列和产品列连接在一起,也就是把姓名和产品组合为一列,然后销量为第2列,返回一个多行两列的内存数组,再用vlookup查询即可
vlookup逆向查找
vlookup只能从左向右查找,但如果需要从右向左查找怎么办?
如下案例,需要根据销量查询产品
在g2单元格输入公式:=vlookup(f2,if({1,0},$c$2:$c$10,$b$2:$b$10),2,0)
公式说明:
和上面多条件查找案例类似,首先查找销量,使用if({1,0},$c$2:$c$10,$b$2:$b$10) 返回一个销量在前,产品在后的多行两列内存数组,让它符合vlookup函数的查询值处于查询区域的首列,再用vookup进行查询即可
vlookup返回多列数据
如下案例,需要根据查找姓名返回多列数据,那么如何输入一个公式搞定一个区域的数据查找呢?
在h2单元格输入公式:=vlookup($g2,$a$2:$e$10,match(h$1,$a$1:$e$1,0),0)
公式说明:
公式其他都没什么变化,主要是第三个参数 返回的列序号,因为公式的移动填充,我们不能确定它是返回第几列,所以在这里我们使用match(h$1,$a$1:$e$1,0) 帮我们去查找科目所在查找区域中的列序号,最后返回一个准确的数据。
vlookup使用通配符查找
当我们在查找的时候,只根据查找值的一部分数据查找时,可以使用通配符查询,例如下图,需根据名称给定的简称查找出数量
在e2单元格输入公式:=vlookup(“*”&d2&”*”,$a$2:$b$8,2,0)
公式说明:*是通配符,可以代表任意多个字符,这里根据查找名称的简称,因为查找区域跟查找值不符,如果不使用通配符必定会返回错误值,”*”&d2&”*” 表示区域中包含蓝莓的就会被找到