最近使用EXCEL2016在做数据匹配,我要将一个工作表里的数据匹配到另外一个工作表里,但是vlookup函数格式都填写正确,结果却总是#N/A,也就是没有任何输出结果,网上查找了很多资料,都是非常顺利的,没有这种问题,还是只能靠自己尝试了,最终发现了一个问题。具体咱们看下面的内容:
VLOOKUP函数介绍
VLOOKUP(lookup_value,table_array,col_index_num,[rang_lookup])
lookup_value:查找值
table_array:查找区域
col_index_num:返回查找区域第几列
[rang_lookup]:查找模式,0表示精确查找,1表示模糊查找
举例1如下:
一个匹配数据源表如下
现在已知账号 lisi,要匹配出他的其他所有信息
对应的函数可以这么写
在H2单元格那边输入 ==VLOOKUP($G2,$A$2:$D$5,2,0)
要匹配的数值是lisi,所以第一个参数lookup_value 为$G2
第二个参数是要用来匹配的区域是A2到D5的四方形区域,所以写成$A$2:$D$5 ,加了$的原因在于如果我此处匹配的账号不只是lisi,还有其他的账号,就可以通过下拉的方式,这样采用$可以固定区域,不然写成A2:D5的话也是可以的,但是如果要下拉的话,就会变成A3:D6了,会自动增加数字
第三个参数是返回匹配区域的第几列数值,这边要的是省份,是第2列,所以填
第四个参数是精确匹配,所以填 0
根据以上 I2单元格输入的是 =VLOOKUP($G2,$A$2:$D$5,3,0)
J2单元格输入的是 =VLOOKUP($G2,$A$2:$D$5,4,0)
以上是一种很普遍解释VLOOKUP使用方法的例子,但是难道工作中你们没有碰到没有这么符合常规的数据吗?我碰到过,接下来咱们看下另外一种例子,你会发现所有VLOOKUP函数的使用方法跟上面写的一样,但就是没有结果,也就是输出结果为#N/A
特殊举例如下:
需求还是跟上面的一样,只是匹配数据源表格顺序换了,注意看,账号是在第三列了,而上面账号是在第一列
这个时候按照上面对函数的理解
H2单元格输入的是 =VLOOKUP($G2,$A$2:$D$5,1,0) 但结果却是 #N/A
后面I2和J2就不用说了,一样的结果。
我按照上面例子仔细观察,发现就是要查找的列在查找区域中不是第一列(咱们给他称为公共列),公共列不在查找区域第一列,可能是一个突破点,因此我做了一个测试,修改查找区域范围
先不管H2要得到的结果是什么, 输入 VLOOKUP($G2,$C$2:$D$5,2,0) 得到的结果是福建分公司,也就是说这个时候可以了。
因此我判定 VLOOKUP的一个关键是公共列要在第一列才是使用函数成功的关键,具体原因不明,也可能是我误解了(若有发现规则的,欢迎告知,感谢!)
所以改动如下,将“账号”列复制,插入到第一列,结果如下
I2输入的是 =VLOOKUP($H2,$A$2:$E$5,2,0) 后面几个单元格做对应修改,你会发现成功了
原文地址:https://blog.51cto.com/767142104/2417122