VLOOKUP找不到是因为单元格的数字是一种文本格式,而查找范围第一列的数字却没有这种符号,它们是数值格式。
VLOOKUP找不到主要以下几种原因:
1、下拉,没对区域做绝对引用。
如下图,划线部份可以按F4,加上绝对引用,变成“$A$1:$B$5”
2、第一参数数据类型不对应,一个是文本,另一个是数值。
3、第一参数或区域的第一列存在空格或其他看似空格的文本,可以通过查找替换,去除空格。
4、Vlookup最后一个参数可以省略,但最后一个逗号千万不能省。省略了最后一个逗号的Vlookup就是残疾。
扩展资料
VLOOKUP函数的语法:
VLOOKUP(查找条件,查找范围,返回在查找范围的第几列数据,精确或模糊匹配)
参考资料
百度百科——VLOOKUP函数
VLOOKUP函数是Excel中的一个纵向查找函数,它与LOOKUP函数和HLOOKUP函数属于一类函数,在工作中都有广泛应用。VLOOKUP是按列查找,最终返回该列所需查询列序所对应的值;与之对应的HLOOKUP是按行查找的。
VLOOKUP函数使用注意事项如下:
一.VLOOKUP的语法:
1.括号里有四个参数,是必需的。最后一个参数range_lookup是个逻辑值,我们常常输入一个0字,或者False;其实也可以输入一个1字,或者true。两者有什么区别呢?前者表示的是完整寻找,找不到就传回错误值#N/A;后者先是找一模一样的,找不到再去找很接近的值,还找不到也只好传回错误值#N/A。
2.Lookup_value是一个很重要的参数,它可以是数值、文字字符串、或参照地址。我们常常用的是参照地址。用这个参数时,有三点要特别提醒:
A)参照地址的单元格格式类别与去搜寻的单元格格式的类别要一致,否则的话有时明明看到有资料,就是抓不过来。特别是参照地址的值是数字时,最为明显,若搜寻的单元格格式类别为文本格式,虽然看起来都是123,但是就是抓不出东西来的。
而且格式类别在未输入数据时就要先确定好,如果数据都输入进去了,发现格式不符,已为时已晚,若还想去抓,则需重新输入。
B)在使用参照地址时,有时需要将lookup_value的值固定在一个格子内,而又要使用下拉方式(或复制)将函数添加到新的单元格中去,这里就要用到“$”这个符号了,这是一个起固定作用的符号。比如说我始终想以D5格式来抓数据,则可以把D5弄成这样:$D$5,则不论你如何拉、复制,函数始终都会以D5的值来抓数据。
C) 用“&" 连接若干个单元格的内容作为查找的参数。在查找的数据有类似的情况下可以做到事半功倍。
3.Table_array是搜寻的范围,col_index_num是范围内的栏数。Col_index_num 不能小于1,其实等于1也没有什么实际用的。如果出现一个这样的错误的值#REF!,则可能是col_index_num的值超过范围的总字段数。选取Table_array时一定注意选择区域的首列必须与lookup_value所选取的列的格式和字段一致。比如lookup_value选取了“姓名”中的“张三”,那么Table_array选取时第一列必须为“姓名”列,且格式与lookup_value一致,否则便会出现#N/A的问题。
4.在使用该函数时,lookup_value的值必须在table_array中处于第一列。
二.VLOOKUP的错误值处理。
如果找不到数据,函数总会传回一个这样的错误值#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表达式自身的值。
三.含有VLOOKUP函数的工作表档案的处理。
一般来说,含有VLOOKUP函数的工作表,如果又是在别的档案里抓取数据的话,档案往往是比较大的,尤其是当你使用的档案本身就很大的时候,那每次开启和存盘都是很受伤的事情。
有没有办法把文件压缩一下,加快开启和存盘的速度呢?这里提供一个小小的经验。
在工作表里,点击工具──选项──计算,把上面的更新远程参照和储存外部连结的勾去掉,再保存档案,则会加速不少,不信你可以试试。
下面详细的说一下它的原理。
1.含有VLOOKUP函数的工作表,每次在保存档案时,会同时保存一份其外部连结的档案。这样即使在单独打开这个工作表时,VLOOKUP函数一样可以抓取到数值。
2.在工作表打开时,微软会提示你,是否要更新远程参照。意思是说,你要不要连接最新的外部档案,好让你的VLOOKUP函数抓到最新的值。如果你有足够的耐心,不妨试试。
3.了解到这点,我们应该知道,每次单独打开含有VLOOKUP函数的工作表时,里面抓取外部档案的数值,只是上次我们存盘时保存的值。若要连结最新的值,必须要把外部档案同时打开。
Vlookup最容易出错的地方是查找区域的首列必须含有查找的内容。
比方说一个表,a列是序号,b列是姓名,c列是身份证,你在d列输入其中的一个姓名,在e1得到其身份证的公式不能是=vlookup(d1,a:c,3,0),而应是=vlookup(d1,b:c,2,0).
对于vlookup函数的使用方法,只是看文字就显得很枯燥,为了方便大家理解,可以查看参考资料中的vlookup函数的使用方法实例方便理解掌握。
如果你要查找的是数字列,明明能在被查找列里能看到,但查找出来的老是提示错误的话,
有个小方法:
将被查找的数据列做一个减0处理,比如A1=1601101,在B1输入:=A1-0,然后复制B列,选中A列,选只粘贴数值。
这通操作的目的是:把字符串转化成数值。
因为如果是字符串,就算选中了,全部改为数字格式都没用,照样找不着,通过这样的运算可以解决这个问题。
如果还不行,就把源列也做同样处理。如果还不行,私信我。
你的公式是编辑在截图第一张表中的D2处吗?
要是这样,你按照这两种方式处理看看:
1、D2=vlookup(a2,sheet1!a:d,3,0)
2、粘贴表1中,c2=value(a2);粘贴表2中b2=value(a2).这样处理后就可以使用的公式: vlookup(c2,sheet1!b:d,2,0)。
试下
=VLOOKUP("*"&C2&"*",Sheet1!b:d,2,0)