为什么VLOOKUP一看就会,一用就错?看完这篇你就懂了
私信回复关键词【UP】~
立即获取VLOOKUP函数用法教程合集,一看就会!
我的大部分工作时间,都是在帮学员解决实际 Excel 问题;
所以 90% 的 Excel 问题,我都能在 5 分钟内解决掉。
但是,昨天遇到了一个提问,我花了 30 分钟:
两个数据明明一模一样,为什么 V 出来是错的呢?
太可怕了,这是我,都要 30 分钟。
如果这个问题发生在普通学员身上,至少 1~2 个小时就白白搭进去了。
赶紧总结分享出来,让大家少踩一点坑。
数据明明一模一样,但是公式 V 不出来,类似的问题还有很多。
我们通过一个简单的案例,先把问题原因找出来!
比如有两个手机号,确实是一模一样,但是对比判断结果为 FALSE,为什么呢?
拉登老师总结了一下,教给你 4 个函数,轻松搞定这个问题:
❶ TYPE 函数,检查数据类型;
❷ LEN 函数,比对字符长度;
❸ MID 函数,逐个字符核对;
❹ CODE 函数,特殊字符现原形。
01TYPE 函数
最常见的原因,就是数字被保存成了文本格式。
这和我们常见的小绿帽子的问题,原因是一样的。
Excel 中有一个 TYPE 函数,可以快速地判断数据类型。
用法非常简单,就一个参数,选择要判断类型的单元格即可。
计算结果有这么几种:
所以,结果很明显了。
手机号 1 是一个数字
手机号 2 是一个文本
那么匹配不上就很正常了。
解决方法也很简单,使用分列功能,快速将文本转成数字。
❶ 选择这两个单元格;
❷ 然后点击「数据」选项,点击「分列」;
❸ 直接点击「完成」。
哎呀,翻车了。
遇到烦事不要慌,拿出手机先发个朋友圈!
02LEN 函数
TYPE 函数不好使,掏出我的第 2 个法宝:LEN 函数。
第 2 个常见原因,就是单元格里有不可见的字符。
LEN 函数的作用,是计算文本的字符个数,对比一下长度,让任何不可见字符,显出原形。
看到了没有!
手机 2 比手机 1 多 1 个字符。
这类字符通常在文本的开头或者结尾。
所以解决方法就很简单了,双击编辑单元格,然后删除掉这些字符就可以了。
到这里,基本上 99% 的问题都能解决掉。
但是我们这个问题比较顽固,编辑单元格删不了这个字符。
那接下来就掏出我的第 3 个法宝:MID 函数。
03MID 函数
MID 函数用来提取文本中,指定位的、指定个数的字符。
举个简单的例子,想要把拉登老师的「登」字提取出来,可以这样写公式。
从第 2 位开始,提取 1 个字符,很简单对吧!公式如下:
那么为了实现每个字符的比对,我们可以创建一个辅助区域。
把每个字符的位置填进去,然后提取每个字符。
到这里,还没有发现什么问题。
别急!
最后,再对每个字符进行比对,这样就很容易发现,最后一个比对 FALSE 了。
都是空白单元格,为什么两个就是不一样了呢?
这个时候,拉登老师就要掏出我的第 4 个法宝了:CODE 函数!
04CODE 函数
首先,你得明白,任何的字符、在电脑上都有一个对应的编号。
这样无论是空格,还是换行,这些不可见的字符,都可以转换成编号,让人能看的见。
这个编号有个名字叫:ASC 码。
Excel 中使用 CODE 函数,可以把任何字符,转成对应的 ASC 码。
上一步的比对中,加入 CODE 函数之后,真相就彻底解开了。
看到了没有!
#VALUE! 错误,是以为第 1 行,确实没有东西。
关键是 63!
那么这个 63 到是什么呢?
掏出我的 ASC 码比对表查一下。
纳尼,居然是一个问号?
罢了,罢了,不再深究了。
事情也算是有一个圆满的结局。
05总结
怎么样?拉登老师货很多吧?
学会了这 4 个函数之后,我们再来看一下开头的那个问题。
用 MID 函数,把这两个值拆解对比一下,如下:
看到了没有!他们中间的那个空格不一样。
故事讲到这里,应该就要结束了。
不过,拉登老师怎么能轻易放过你!
考考你:
公式中的这个 MID 公式中,ROW(1:13)是啥意思?
知道的,评论区写回答~
私信回复关键词【UP】~
立即获取VLOOKUP函数用法教程合集,一看就会!
看了MID函数这6种高级用法,你还觉得它很简单吗?
Excel秘籍大全,前言
MID函数是Excel中常用的字符串截取函数,可以从一个文本字符串的指定位置截取相应个数的字符,语法为:=MID(要截取的文本字符串,从哪个位置开始截取,截取多少个字符)。MID函数的常规用法很简单,Excel秘籍大全不多做介绍,主要给小伙伴们讲解MID函数的高级用法。
Excel秘籍大全,正文开始
1.常规用法
先来回顾一下MID函数的常规用法,如图1所示,从“520小包Excel系列课程
”提取出“Excel”,其公式为:=MID(A2,6,5)。第一参数可以引用字符串所在的单元格,第二参数6表示“Excel”首字母“E”在“520小包Excel系列课程
”中的位置,每个汉字、字母或者符号都代表一个字符,“E”即为第6位,第三参数为要截取的字符个数,“Excel”有5个字母构成,每个字母代表一个字符总即5个字符。
图1
2.MID+FIND+LEN组合截取字符
如图1的文本字符串,由于字符串比较短,我们肉眼可以快速判断第二参数即要从那个位置开始截取,但是如果文本字符串很长的话或者“Excel”在文本字符串中的位置不规则,那么如何一劳永逸的快速提取呢?这就需要用到FIND字符定位函数。FIND函数表示一个字符串在另一个字符串当中出现的起始位置,结果为数值,语法为:=FIND(要查找的字符串,被查找的字符串,[开始位置]),第三参数省略时默认为1。LEN函数表示返回字符串中的字符个数。
如图2所示,文本字符串中包含汉字、数字、字母和符号,并且要提取的字符“Excel”在文本字符串中的位置也不固定,其公式为:=MID(A2,FIND(\”Excel\”,A2),LEN(\”Excel\”))。用FIND函数返回的结果充当MID函数的第二参数即从哪个位置开始截取,FIND(\”Excel\”,A2)表示“Excel”在字符串中第一次出现的位置,也可以写成FIND(\”E\”,A2)结果不变,注意这里的“E”必须为大写,因为FIND定位函数区分大小写!LEN(\”Excel\”)返回文本字符串“Excel”的长度即字符个数为5,充当MID函数的第三参数。
图2
3.CONCAT+IFERROR+MID+ROW万能组合提取数值
如图3所示,要从A列不规则的文本中提取出电话号码,上文介绍的MID+FIND+LEN组合函数已经不能达到目的,我们需要用到CONCAT+IFERROR+MID+ROW组合函数,在B2单元格输入公式为:=CONCAT(IFERROR(–MID(A2,ROW($1:$50),1),\”\”)),然后同时按下Ctrl+Shift+Enter三键,并向下填充。
图3
首先用ROW($1:$50)构建1到50的数组{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50},ROW函数里面的参数只要保证大于等于A列文本字符串的最大长度即可,如图3-1所示,字符最大长度为26,那么ROW($1:$50)也可以写成ROW($1:$26)或者比26更大的数字,这里为了方便就直接写大了一些。那么MID(A2,ROW($1:$50),1)就表示把文本字符串分别从第1位开始提取1位,第2位开始提取1位,第3位开始提取1位……以此类推,就能把文本字符串当中的每一位字符都提取出来,以第一个文本字符串为例,MID返回的结果为:{\”张\”;\”三\”;\”@\”;\”电\”;\”话\”;\”1\”;\”3\”;\”0\”;\”6\”;\”3\”;\”2\”;\”2\”;\”9\”;\”2\”;\”6\”;\”5\”;\”地\”;\”址\”;\”y\”;\”u\”;\”y\”;\”广\”;\”东\”;\”深\”;\”圳\”;\”市\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”},然后用双负号“–”将除数值以为的字符全部转化为错误值#VALUE!,即构成VALUE!和数字组成的数组,然后再用IFERROR函数将错误值转化为空值,结果为:{\”\”;\”\”;\”\”;\”\”;\”\”;1;3;0;6;3;2;2;9;2;6;5;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”\”},最后再用连接函数CONCAT将数组中的每个元素连接到一起即可,此组合可应用于所有不规则字符串中的数值提取。
图3-1
4.MID+LEN倒数提取字符
倒数提取字符常用到的是RIGHT函数,如果同样用MID函数该如何操作呢?MID函数难点在于如何从不规则字符串中确定第二参数即开始截取的位置。如图4所示,要提取每个文本字符串的后6位,其公式为:=MID(A2,LEN(A2)-6+1,6),LEN(A2)返回文本字符串的长度,LEN(A2)-6表示减去6位后剩余的字符个数,再在这个基础上+1即能得出后6位字符串中第一个字符出现的位置。
图4
5.TEXT+MID提取出生日期
如图5所示,要从身份证号中提取出生日期,该如何操作呢?大家知道,对于18为身份证号来说,从身份证号的第7位开始往后8位的连续数字代表的是出生日期,在B2单元格输入公式为:=TEXT(MID(A2,7,8),\”00-00-00\”),并向下填充即可。
图5
6.MID+FIND提取指定字符中间的字符串
如图6所示,要提取括号中间的地址信息,由于地址信息字符长度和位置都不一致,不能简单的MID函数提取,需要配合定位函数FIND,在B2单元格输入公式为:=MID(A2,FIND(\”(\”,A2)+1,FIND(\”)\”,A2)-FIND(\”(\”,A2)-1),然后向下填充即可。
图6
FIND(\”(\”,A2)+1表示从左括号的后一位开始提取,充当MID函数的第二参数,第三参数看起来眼花缭乱?我们来理清思路。我们先确定右括号在字符串中的位置,公式为:=FIND(\”)\”,A2),然后再确定左括号在字符串中的位置,公式为:=FIND(\”(\”,A2),然后再把右括号的位置减去左括号的位置再减去1即为括号中间的字符个数,公式为:=D2-C2-1,以此来充当MID函数的第三参数。
7.MID+CONCAT+IF+LEN充当查询函数
如图7所示,根据姓名查询对应的部门,其公式为:=MID(CONCAT(IF(A2:A8=A12,E2:E8,\”\”)),1,LEN(CONCAT(IF(A2:A8=A12,E2:E8,\”\”)))),并同时按下Ctrl+Shift+Enter三键。IF(A2:A8=A12,E2:E8,\”\”)返回数组{\”\”;\”\”;\”\”;\”\”;\”\”;\”\”;\”推广部\”},再用CONCAT函数连接数组结果为:\”推广部\”,MID第三参数用LEN函数确定第一参数的字符长度即LEN(\”推广部\”)结果为3。
图7
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。