用函数vlookup出现na怎么办啊

发布网友

我来回答

2个回答

热心网友

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_array 第二列的数值,以此类推。如果 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以上版本中,可以使用iferror(value, value_if_error)代替以上两个函数的组合,该函数判断value表达式是否为错误值,如果是,则返回value_if_error,如果不是,则返回value表达式自身的值。

如果返回的错误值是#N/A,有一种常见的不容易发现的可能及时,要查找的值和区域中的值都是数字,但是一个是文本型数字,一个是数值形数字。

此时将文本数字改为数值数字,能解决返回值为#N/A的问题,或者将数值数字改为文本数字也能解决返回值为#N/A的问题。

如果,都是同类型的数字,要查找的值没有空格,查找的值后面有空格也会返回错误值#N/A。

或者同类型的数字,要超找的值有空格,查找值的范围内对应的值无空格,也会发挥错误值#N/A。

此时的办法很简单,用ctrl+h调出替换对话框,查找内容为空格,替换为后面什么也不填,然后全部替换即可。

替换之后,错误值将消失,返回正常的函数值,如果还是错误,可能需要从新编辑一下刚刚设置转换了类型的数字然后回车,或者需要通过分列实现数字类型的快速转换。

热心网友

那是查找不到返回错误值,你的公式没有加绝对符所以找不到,也许是你的对照表与订单明细表中的图书编号不符。你改成这样试试

E2=VLOOKUP("*"&D2&"*",编号对照表!$A$1:$C$100,2,0)追问哈?没看懂改成什么啊

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com