· VLOOKUP 的语法结构
VLOOKUP用于在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值
VLOOKUP(lookup_value,table_array, col_index_num, [range_lookup])。
汉语表述就是VLOOKUP(查找值,查找范围,查找列数,精确匹配或者近似匹配)
在我们的工作中,几乎都使用精确匹配,该项的参数一定要选择为false。否则返回值会出乎你的意料。
· VLOOKUP使用示范
vlookup就是竖直查找,即列查找。通俗的讲,根据查找值参数,在查找范围的第一列搜索查找值,找到该值后,则返回值为:以第一列为准,往后推数查找列数值的这一列所对应的值。这也是为什么该函数叫做vlookup(v为vertical-竖直之意,lookup即时英文的查找之意)
其中:
1、Lookup_value:表示要查找的值,它必须位于自定义查找区域的最左列。
Lookup_value 可以为数值、引用或文字串。
2、Table_array:查找的区域,用于查找数据的区域,上面的查找值必须位于这个区域的最左列。可以使用对区域或区域名称的引用。
3、Row_index_num:为 table_array 中待返回的匹配值的行序号。
Row_index_num 为1 时,返回 table_array 第一行的数值;
row_index_num 为 2 时,返回 table_array 第二行的数值;
依次类推。
4、Col_index_num:为相对列号。最左列为1,其右边一列为2,依次类推。
5、Range_lookup:为一逻辑值,指明函数VLOOKUP 查找时是精确匹配,还是近似匹配。
Range_lookup为:FALSE ,VLOOKUP将只查找精确匹配值。如果Table_array 的第一列中有两个或更多值与 lookup_value 匹配,则使用第一个找到的值。如果找不到精确匹配值,则返回错误值。
Range_lookup为:TRUE或被省略,则返回精确匹配值或近似匹配值。如果找不到精确匹配值,则返回小于 lookup_value 的最大值。并且,必须按升序排列 Table_array 第一列中的值;否则,VLOOKUP 可能无法返回正确的值。【TRUE 或被省略,返回的值有两种,因此,精确查找则选用参数FALSE。】
如果 Table_array 的第一列中有两个或更多值与 lookup_value 匹配,则使用从上往下,第一个升序排列段的最后一个值,如果排列段后面还有值与lookup_value 匹配。此时,反馈的还是使用从上往下,第一个升序排列段的最后一个值。
范例如图
此处已知的数据库是左边部分,想通过已知的学号来从左边找出对应的语文成绩。因此在语文成绩那输入=vlookup(查找的内容(此处为学号所在的单元格),查找范围(框下范围就好),输出内容在查找范围的第几列,false(一般用精确匹配))
另外需要注意,如果数据量较大想使用拖拉功能,在选定范围的时候一定要锁住,如正常的A1:D5表示从A1到D5的范围,但拖拉后范围会往下移,因此范围应写为$ A$1:$D$5,这样,对于所有的数据采集源数据的范围都是A1到D5