2021年最有钱途的函数!一个“?”就让不加班不熬夜还有时间搞副业

编按

大家好,这里是小E。我们处理数据时总免不了要查找并且提取一些重要的数据,如何在上千甚至上万行的数据中快速准确的进行查找和提取?小可老师给我们介绍了两个利器:SEARCHB函数和Mid函数,对于文本的查找提取它们是专业的!理论+案例,小可老师在线手把手教学。

哈喽,大家好吖~今天小可给大家带来的干货是SEARCHB(”?”,文本)小妙招与MID函数的实用案例!我们一起去学习吧~~~

本期目录先奉上

一、SEARCH和SEARCHB

1.1统计以“182”开头“6”结尾的号码个数

1.2提取数字

1.3提取数字(文字与数字混合排列)

二、MID

2.1提取身份证号码中的出生年月日

2.2分列显示年、月、日

2.3将一串数字拆分成单个数字并求和

2.4用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>三键结束,结果却是3个。这是为啥呢??!

因为,虽然"182*6"也表示“182”开头、以“6”结尾,但不代表文本长度为11,所以图中的A6单元格的“18275698657”也被统计入结果了。

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函数,从首个单字节字符的位置起,提取出单字节字符长度的文本串字符。

二、Mind

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>三键结束公式编辑,再将公式向下复制到F11:H11单元格区域。

【解读】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个字符串,即“良”。

今日分享就到这啦,下次见!

(0)

相关推荐