VLOOKUP函数是Excel中的一个纵向查找函数,它与LOOKUP函数和HLOOKUP函数属于一类函数,在工作中都有广泛应用。VLOOKUP是按列查找,最终返回该列所需查询列序所对应的值;与之对应的HLOOKUP是按行查找的。
该函数的语法规则如下:
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
Lookup_value为需要在数据表第一列中进行查找的数值。Lookup_value 可以为数值、引用或文本字符串。当vlookup函数第一参数省略查找值时,表示用0查找。
Table_array为需要在其中查找数据的数据表。使用对区域或区域名称的引用。
col_index_num为table_array
中查找数据的数据列序号。col_index_num 为 1 时,返回 table_array 第一列的数值,col_index_num 为 2
时,返回 table_a消许答待差浓判车久排耐rray 第二列的数值,以此类推。如果 col_index_num 小于1,函数 VLOOKUP 返回错误值 #VALUE!;如果 col_index_num 大于 table_array 的列数,函数 VLOOKUP 返回错误值#REF!。
Range_lookup为一逻辑值,
指明函数 VLOOKUP 查找时是精确匹配,还是近似匹配。如果为false或0 ,则返回精确匹配,如果找不到,则返回错误值 #N/A。如果
range_lookup 为TRUE或1,函数 VLOOKUP 将查找近似匹配值,也就是说,如果找不到精确匹配值,则返回小于
lookup_value 的最大数值。如果range_lookup 省略,则默认为近似匹配。
如果找不到数据,函数总会传回一个这样的错误值#N/A,这错误值其实也很有用的。
例如,如果我们想这样来作处理:如果找到的话,就传回相应的值,如果找不到的话,就自动设定它的值等于0,则函数可以写成这样:
=if(iserror(vlookup(1,2,3,0)),0,vlookup(1,2,3,0))
在Excel 2007以上版本中,以上公式等价于
=IFERROR(vlookup(1,2,3,0),0)
这句话的意思是:如果VLOOKUP函数返回的值是个错误值的话(找不到数据),就等于0,否则,就等于VLOOKUP函数返回的值(即找到的相应的值)。
这里又用了两个函数。
第一个是iserror函数。它的语法是iserror(value),即判断括号内的值是否为错误值,如果是,就等于true,不是,就等于false。
第二个是if函数,
这也是一个常用的函数的。它的语法是if(条件判断式,结果1,结果2)。如果条件判断式是对的,就执行结果1,否则就执行
结果2。举个例子:=if(D2=””,”空的”,”有东西”),意思是如D2这个格子里是空的值,就显示文字“空的”,否则,就显示“有东西”。
在Excel 2007以上版本中,可以使用i搞教样汽快他围空跑转上ferror(value, value_if_error)代替以上两个函数的组合,该函数判断value表达式是否为错误值,如果是,则返回value_if_error,如果不是,则返回value表达式自身的值。
如果返回的错误值是#N/A,有一种常见的不容易发现的可能及时,要查找的值和区域中的值都是数字,但是一少依虽确敌城书目银话袁个是文本型数字,一个是数值形数字。
此时将文本数字改为数值数字,能解决返回值为#N/A的问题,或者将数值数字改为文本数字也能解决返回值为#N/A的问题。
如果,都是同类型的数字,要查找的值没有空格,查找的值后面有空格也会返回错误值#N/A。
或者同类型的数字,要超找的值有空格,查找值的范围内对应的值无空格,也会发挥错误值#N/A。
此时的办法很简单,用ctrl+h调出替换对话框,查找内容为空格,替换为后面什么也不填,然后全部替换即可。
替换之后,错误值将消失,返回正常的函数值,如果还是错误,可能需要从新编辑一下刚刚设置转换了类型的数字然后回车,或者需要通过分列实现数字类型的快速转换。