看了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

看了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

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。