vlookup函数为什么找不到数据?
2个回答
展开全部
因为查找的数据类型和查找区域中的数据类型不一致,具体说明如下:
1、Vlookup函数无法匹配数据,可以看到D列中的数字是数字值,而匹配区域中的数字是文本。
2、完成上述步骤后,使用列分类之类的方法将文本数字转换为数字数值。
3、完成上述步骤后,通过这种方式,Vlookup匹配数据即可成功。
元格格式不同,你仔细看一图上的身份证是文本格式,二图上的不是文本格式,可能是有空格等看不见的数据,所以导致查找不到。你看一图F6和F5格式并不相同,左上角没有绿色三角,
单元格属性的问题。由于身份证数字串太长,VLOOKUP经常会以默认使用前面的N位数值处理(到底多少位我忘了,实际试一下就知道了)。
在处理这类数据时,我一般有两种处理办法:
其一,在所有的身份证号前面统一加一个字母,强迫其成为字符串,这样处理时就完全以字符处理。
其二,用offset(match( )) ,函数组合替代Vlookup,个人感觉,这两个函数组合使用,比vlookup靠
公式没问题,唯一的解释就是在原表中并没有现在要查找的身份证号
0 前一篇推文中我们教了大家如何用 vlookup 函数查找带通配符的单元格,立刻引起了读者的反响。
有些读者表示,在工作中还遇到过各种稀奇古怪的问题,比如 vlookup 突然失灵了,数据明明正确就是查找不出结果。
比如下面这个案例。
案例:
下图 1 中的 A、B 列为某公司员工的身份证号,请根据 D 列中列出的身份证号,在 E 列中查找出对应的姓名。
效果如下图 2 所示。
解决方案:
乍一看,这么简单的需求没什么好纠结的,vlookup 公式直接查就可以了。
1. 在 E2 单元格中输入以下公式 --> 下拉复制公式:
=VLOOKUP(D2,A:B,2,0)
但是很奇怪,找不到对应的姓名。而我用 Ctrl+F 去查找了一下,D 列的身份证号在 A 列又千真万确存在,这到底是怎么回事?
为了在 Excel 中完整显示 18 位的身份证号码,必须将单元格格式设置为文本,这样在数据录入的过程中,就可能会存在一些不可见的字符。
为了能够使两边的文本能够匹配上,通常可以尝试以下几种做法:
用 trim 函数去除两列身份证号码的前后空格,之后再用 vlookup 查找。
如果 trim 不管用,可以尝试用 clean 函数去除一些不可见的特殊符号
如果上述方法还是不行,可以在查找单元格前后加上 "*",用 & 符号连接起来。
我们直接来试一下第三种用法。
2. 选中 E2:E5 区域,输入以下公式 --> 按 Ctrl+Enter 回车:
=VLOOKUP("*"&D2,A:B,2,0)
现在所有姓名都成功查找出来了。这是什么原理呢?
"*" 是通配符,用 & 连接符号跟 D2 连在一起,表示 D2 前含有任意字符的单元格;
如果前面加 "*" 找不到,可以试下前后都加,即 "*"&D2&"*";
如果还是找不到,可以再叠加清洗函数,比如 "*"&CLEAN(D2)&"*"
以下就是最终效果。
1、Vlookup函数无法匹配数据,可以看到D列中的数字是数字值,而匹配区域中的数字是文本。
2、完成上述步骤后,使用列分类之类的方法将文本数字转换为数字数值。
3、完成上述步骤后,通过这种方式,Vlookup匹配数据即可成功。
元格格式不同,你仔细看一图上的身份证是文本格式,二图上的不是文本格式,可能是有空格等看不见的数据,所以导致查找不到。你看一图F6和F5格式并不相同,左上角没有绿色三角,
单元格属性的问题。由于身份证数字串太长,VLOOKUP经常会以默认使用前面的N位数值处理(到底多少位我忘了,实际试一下就知道了)。
在处理这类数据时,我一般有两种处理办法:
其一,在所有的身份证号前面统一加一个字母,强迫其成为字符串,这样处理时就完全以字符处理。
其二,用offset(match( )) ,函数组合替代Vlookup,个人感觉,这两个函数组合使用,比vlookup靠
公式没问题,唯一的解释就是在原表中并没有现在要查找的身份证号
0 前一篇推文中我们教了大家如何用 vlookup 函数查找带通配符的单元格,立刻引起了读者的反响。
有些读者表示,在工作中还遇到过各种稀奇古怪的问题,比如 vlookup 突然失灵了,数据明明正确就是查找不出结果。
比如下面这个案例。
案例:
下图 1 中的 A、B 列为某公司员工的身份证号,请根据 D 列中列出的身份证号,在 E 列中查找出对应的姓名。
效果如下图 2 所示。
解决方案:
乍一看,这么简单的需求没什么好纠结的,vlookup 公式直接查就可以了。
1. 在 E2 单元格中输入以下公式 --> 下拉复制公式:
=VLOOKUP(D2,A:B,2,0)
但是很奇怪,找不到对应的姓名。而我用 Ctrl+F 去查找了一下,D 列的身份证号在 A 列又千真万确存在,这到底是怎么回事?
为了在 Excel 中完整显示 18 位的身份证号码,必须将单元格格式设置为文本,这样在数据录入的过程中,就可能会存在一些不可见的字符。
为了能够使两边的文本能够匹配上,通常可以尝试以下几种做法:
用 trim 函数去除两列身份证号码的前后空格,之后再用 vlookup 查找。
如果 trim 不管用,可以尝试用 clean 函数去除一些不可见的特殊符号
如果上述方法还是不行,可以在查找单元格前后加上 "*",用 & 符号连接起来。
我们直接来试一下第三种用法。
2. 选中 E2:E5 区域,输入以下公式 --> 按 Ctrl+Enter 回车:
=VLOOKUP("*"&D2,A:B,2,0)
现在所有姓名都成功查找出来了。这是什么原理呢?
"*" 是通配符,用 & 连接符号跟 D2 连在一起,表示 D2 前含有任意字符的单元格;
如果前面加 "*" 找不到,可以试下前后都加,即 "*"&D2&"*";
如果还是找不到,可以再叠加清洗函数,比如 "*"&CLEAN(D2)&"*"
以下就是最终效果。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询