Excel中的VLookup函数是一个纵向查找函数,在工作中有广泛应用,例如可以用来核对数据,多个表格之间快速导入数据等功能。该函数的基本原理是按列查找,最终返回该列所需查询序列所对应的值。
一、Vlookup参数说明
VLookup函数由四个参数组成,具体语法规则如下:
VLookup(lookup_value,table_array,col_index_num,range_lookup)
参数 | 简单说明 | 输入数据类型 |
lookup_value | 要查找的值 | 数值、引用或文本字符串 |
table_array | 要查找的区域 | 数据表区域 |
col_index | 返回数据在查找区域的第几列数 | 正整数 |
range_lookup | 精确匹配/近似匹配 | FALSE(或0)/TRUE(或1或不填) |
注意:
一般来讲,Vlookup函数的前三个参数是必须填写的,第四个参数可以不填,如果不填第四个参数,则该参数默认值是:TRUE,也就是近似匹配(TRUE也可以用1进行代替)。不过一般在使用过程中,第四个参数都填FALSE,也就是精确匹配(FALSE也可以用0进行代替)。
二、Vlookup函数特性
1、只能正向查找,即通过A列搜索B列,不能通过B列搜索A列。
2、查找列必须位于第一列。
3、源数据必须严格对齐,重复内容会导致识别出错。
以上三点就对Vlookup函数的使用有了一定的约束性,在使用的过程中还需要多加注意。
三、Vlookup函数具体用法
1、基础用法
最基本的用法就是完全符合Vlookup函数的特性,以下是实例:
可以看出,数据中部门列是有重复值的,如果用部门列当做条件来进行查找的话,最终的结果极有可能是不正确的,但是姓名列没有重复值,所以我们可以用姓名列来当做条件进行相应的查找。例如:查找李华的年龄。
查找条件李华位于A列第10行。
公式:VLOOKUP(A10,B2:D9,3,0)
公式解读:虽然原始数据中姓名位于B列(第二列),但是在我们的查找区域内(B列-D列),姓名可以理解为第一列,而要查找的年龄位于D列,也就是查找区域的第三列,所以函数的第三个参数值为3,因为我们要查找李华的年龄,目的比较明确,那么第四个参数值应该为0(精确查找)。
2、“反向”查找
有时候我们需要查找的信息并不一定位于查找条件列的右边,也就是要进行反向查找,那么就需要将数据复制到右边然后再进行查找,这样很容易打乱原始数据,所以针对这种情况,我们再延伸一下,来看看如何实现反向查找。
还是上述数据:
我们现在想要查找李华所在的部门,根据数据可以看出,部门列在姓名列的左边,不符合Vlookup从左向右查找的特性。这时,我们就需要人为的构建出一个查找区域,使得姓名列在左,部门列在右。
公式:VLOOKUP(A10,IF({1,0},B2:B9,A2:A9),2,0)
公式解读:这个公式看起来比上面的公式复杂了很多,并且还有函数嵌套,但其实原理很简单,主要区别就在于我们用IF函数人为的构建了一个查找区域,可以把IF({1,0},B2:B9,A2:A9)看做是一个整体,它就是查找区域。Excel中数字1代表TRUE,数字0代表FALSE,IF函数的逻辑就是当条件为真时,返回值1,否则返回值2。此处,IF函数先判断1为TRUE,就返回了B列,然后再判断0为FALSE,就返回了A列,然后将两列组合成了新的数组,如下图所示。
这样就将姓名列放在了部门列的左边,Vlookup函数也就能够正常进行查找了。标题之所以加了引号,是因为在函数原理上并不是真正的反向查找,而且Vlookup也不支持反向查找,我们只是将数据的位置进行了变换。