文本提取那些事儿:超好用的SEARCHB函数和Mid函数
作者:小可来源:部落窝教育发布时间:2021-07-20 16:03:05点击:3809
编者按:
Hello,大家好,这里是小E。我们处理数据时总免不了要查找并且提取一些重要的数据,如何在上千甚至上万行的数据中快速准确的进行查找和提取?小可老师给我们介绍了两个利器:SEARCHB函数和Mid函数,对于文本的查找提取它们是专业的!理论+案例,小可老师在线手把手教学。
哈喽,大家好吖~今天小可给大家带来的干货是SEARCHB(”?”,文本)小妙招与MID函数的实用案例!我们一起去学习吧~~~
本期目录先奉上
一、SEARCH和SEARCHB
知识乐园:
SEARCH和SEARCHB函数查找不区分大小写,而且可以使用通配符查找。
通配符:"?"匹配任意单个字符;"*"匹配任意一串字符。
若要查找实际的问号或星号,请在该字符前键入波形符(~)。
1.1统计以“182”开头“6”结束的号码个数
要求:A列是号码,要求在B列统计以“182”开头、“6”结尾的号码个数。
方法:在B4单元格输入公式“=COUNT(SEARCH("182???????6",A3:A10))”,按“Ctrl+Shift+Enter”三键结束。
解读:公式为嵌套函数,内层是SEARCH函数,外层是COUNT函数。
①SEARCH函数在号码中查找出以“182”开头、“6“”结尾,文本长度为11的号码,查找结果以内存数组的形式保存在公式中,结果如下:
{1;#VALUE!;#VALUE!;#VALUE!;#VALUE!;1;#VALUE!;#VALUE!};
②外层用COUNT函数对数字数据进行统计(COUNT函数对于空单元格、逻辑值或者文本数据都不计数)。
小提醒:若在B3单元格输入公式:=COUNT(SEARCH("182*6",A3:A10)),按“Ctrl+Shift+Enter”
1.2提取数字
要求:提取出“信息列”右侧的连续数字。
方法:在G3单元格输入公式“=MIDB(F3,SEARCHB("?",F3),99)”,向下复制填充公式。
解读:SEARCHB和MID函数的嵌套使用。
①SEARCHB("?",文本)可以查找到文本中首个单字节字符的位置;
②再利用MID函数从首个单字节字符的位置开始,提取出后面的99个字符(即所有字符)。
小提示:输入公式“=RIGHT(F3,2*LEN(F3)-LENB(F3))”也可以得出一样的结果。
1.3提取数字(文字与数字混合排列)
要求:如图,A列是文字与连续数字混合排列的句子,现需要单独提取出句子中的数字到B列。
方法:在B15单元格输入公式“=MIDB(A15,SEARCHB("?",A15),2*LEN(A15)-LENB(A15))”,向下复制填充公式。
解读:三个函数组合的嵌套。
①SEARCHB("?",A15)部分:查找出首个单字节字符的位置;
②2*LEN(A15)-LENB(A15)部分:得出单字节字符的长度(关于LEN函数更详细的解释可以康康第一期的2.1、2.2哦~);
③最后利用MIDB函数,从首个单字节字符的位置起,提取出单字节字符长度的文本串字符。
二、MID
2.1提取身份证号码中的出生年月日
要求:B列为身份证号码信息,要求提取出每个人的出生年月日并以“1988-07-18”的格式保存在C列。
方法:在C3单元格输入公式“=TEXT(MID(B3,7,8),"0-00-00")”,向下复制填充公式。
解读:MID和TEXT函数的嵌套使用。
①使用MID函数从身份证的第7位数起提取8个字符串;
②再借助TEXT函数将格式转换为"0-00-00"。
2.2分列显示年、月、日
要求:将E列的年月日按年、月、日的顺序分别提取放置到F、G、H列。
方法:同时选中F3:H3单元格区域,输入数组公式“=MID(E3,{1,5,7},{4,2,2})”,按“Ctrl+Shift+Enter”
解读:MID函数的第二参数和第三参数都运用了常量数组形式,为提取年月日,应该根据数组组成特点,分别从E列数组中的第1、5、7位分别提取4、2、2个字符串,结果存放在F3:H3单元格中。
悄悄说一句:文本函数的参数用对了数组将会非常方便~~~
2.3将一串数字拆分成单个数字并求和
要求:将下列图表中的“数字串”的每个数拆分后求和,例如将“89652”拆分后求和等于“8+9+6+5+2=30”。
方法:在B16单元格输入公式“=SUM(--(0&MID(A16,ROW($1:$9),1)))”, 按“Ctrl+Shift+Enter”
解读:以“89652”为例作分析。
①MID(A16,ROW($1:$9),1)部分,利用MID函数把文本的前九个字符串分别提取出来,以内存数组的形式保存在公式中,结果如下:{"8";"9";"6";"5";"2";"";"";"";""};
②0&MID(A16,ROW($1:$9),1)部分,虽然空文本""在有时候等价于数值0,但是并不等于数值0,为了避免下一步减负运算因为空文本而出现“#VALVE!”,所以前面用0连接上提取出的9个字符,结果如下:
{"08";"09";"06";"05";"02";"0";"0";"0";"0"};
③--(0&MID(A16,ROW($1:$9),1))部分,将文本型数字转换为数值型数字,结果如下:
{8;9;6;5;2;0;0;0;0};
④最后用SUM函数对内存数组数值进行求和。
2.4用MID函数判断等级
要求:根据图中的评级规则对A列同学的成绩进行评级,评级结果依次展示在C列。
方法:在C25单元格输入公式“=MID($A$41,B25/10+1,1)”,向下复制填充公式。
解读:MID函数和数学计算结合。
①辅助列中,上行的分数与下行的评级一一对应。例如0对差、10对差、20对差、30对差……90对优、100对优;
②第二参数,因MID函数会自动对小数参数作去尾处理,所以“/10”后不必再对商取整(即不必使用INT等取整函数);
③B25/10+1作为在“差差差差差差中中良优优”(有11个汉字,不是10个)字符串中开始提取的位置。以C25单元格的88分为例,第二参数88/10去掉小数点后的数值结果为8,则在“差差差差差差中中良优优”的第8+1=9个字符起提取1个字符串,即“良”。
今日分享就到这啦,下次见!
本文配套的练习课件请加入QQ群:902294808下载。
做Excel高手,快速提升工作效率,部落窝教育《一周Excel直通车》视频和《Excel极速贯通班》直播课全心为你!
扫下方二维码关注公众号,可随时随地学习Excel:
相关推荐:
Excel实用案例:SUBSTITUTE嵌套函数对文本单元格的判断和计算
Excel数字提取技巧:从包含文字的单元格中提取所有数字的万能公式
Excel数字提取技巧:用简单公式从混合文本中提取数字的3种情景
版权申明:
本文作者小可;同时部落窝教育享有专有使用权。若需转载请联系部落窝教育。