mid函数的使用方法教程(mid函数不简单,这四个高级用法)
Hello,大家好!这次和大家分享mid函数的用法。mid函数用于提取字符,本身的用法非常简单,使用情形也很有限。实际工作中,我们经常需要将mid函数和其他函数组合使用。因此,本文除了介绍mid函数的基础用法,还会进一步讲解mid函数与len函数、find函数的组合用法。
1
基础用法
mid函数从一个字符串的指定位置开始,提取指定数量的字符。
mid函数的语法为MID(text,start_num,num_chars)。mid函数从参数text中提取字符串,start_num表示从哪个位置开始提取字符,num_chars指提取多少个字符。
如下图所示,为mid函数的基础用法示例。
(1)B2单元格的公式“=MID(A2,2,3)”,表示从A2单元格的字符串“hello”的第2个字符(即“e”)开始,一共提取3个字符,得到结果“ell”。
(2)B3单元格从文本“猪猪侠”的第1个字符开始,提取2个字符,得到“猪猪”。
(3)B4单元格从文本“hello 猪猪侠”的第4个字符(即“l")开始,提取5个字符,得到结果“lo 猪猪”。需要注意的是,空格也算作一个字符。
(4)B5单元格从文本“hello 猪猪侠”的第4个字符开始,提取100个字符。很显然,从第4个字符开始提取,剩下的字符数量是不够100个字符的。此时mid函数会从第4个字符开始,一直提取到最后一个字符,因此返回结果“lo 猪猪侠”。
需要牢记的是,mid函数(包括其他字符提取函数right函数、left函数)返回的结果是文本。如果mid函数提取的数字需要参与计算,必须将其转化为真正的数值。这一点将会在下文的示例中进一步说明。
2
组合用法
mid函数从指定位置提取指定数量的字符。指定位置、指定数量通常不是直接输入的,而是通过函数计算出来的。
find函数可以返回一个字符(串)在另一个字符串中的位置,len函数可以返回字符串的长度。mid函数经常与find函数、len函数组合使用。
例1:提取分隔符之后的文本
如下图所示,姓名和ID号之间使用“/”分隔,要求提取ID。
想要提取ID,需要知道分隔符“/”在文本中的位置,然后从下一个字符开始,一直提取到最后一个字符。可以使用find函数返回“/”的位置。
以B2单元格的公式为例说明find函数的用法,“=FIND("/",A2,1)”,表示从A2单元格的文本中查找“/”,公式中的“1”表示从第一个字符开始查找。find函数返回“4”,表示“/”在第4个字符处。
如下图所示,B2单元格的公式为
=MID(A2,FIND("/",A2,1)+1,20)
mid函数从“/”的下一个字符开始,提取20个字符。由于A列的字符数小于20,因此mid函数可以提取“/”之后的所有字符。
例2:提取两个分隔符之间的文本
如下图所示,姓名、ID、城市之间使用“/”分隔,要求提取ID。
想要使用mid函数提取分隔符“/”之间的数字,关键是找到“/”在文本中第一次、第二次出现的位置。
通过例1,我们知道了如何使用find函数找到分隔符“/”第一次出现的位置。那么如何找到“/”第二次出现的位置呢?
如下图所示,以B2单元格的公式为例,=FIND("/",A2,FIND("/",A2,1)+1),表示在A2单元格中找到“/”出现的位置,但不是从第1个字符开始查找,而是从“/”第一次出现位置的下一个字符开始查找。FIND("/",A2,1)返回“/”第一次出现的位置,Find函数默认从第1个字符开始查找,因此第三个参数“1”可以省略。
知道分隔符“/”两次出现的位置分别在哪里,再使用mid函数提取分隔符之间的数字就比较简单了。如下图所示,B2单元格的公式为:=MID(A2,FIND("/",A2)+1,FIND("/",A2,FIND("/",A2)+1)-FIND("/",A2)-1)
公式的原理就是:mid(A2,"/"第一次出现的位置+1,"/"第二次出现的位置-第一次出现的位置-1)
例3:提取数字
如下图所示,姓名和ID之间以“/”分隔,ID全部为数字,ID和描述之间没有分隔符号。那么如何提取数字ID呢?
使用mid函数提取数字,起始位置是“/”的下一个字符,用find函数即可找到起始位置。但是如何找到数字的个数呢?我们可以使用len函数、lenb函数。
如下图所示,len函数可以返回字符数量。A2单元格中有10个字符;A3单元格中有14个字符。
如下图所示,lenb函数可以返回字节数量。一个汉字是两个字节,一个字母或数字是1个字节,“/”也是一个字节。lenb(A2)返回结果“15”,len(A2)返回结果“10”,相差的“5”就是汉字的个数。
如下图所示,B2单元格的公式“=2*LEN(A2)-LENB(A2)-1”返回的就是A2单元格数字的个数。“lenb(A2)-len(A2)”返回汉字的个数,总字符数量len(A2)减去汉字的个数就是(数字+“/”)的个数,再减去1就得到数字的个数。
因此,使用mid函数提取数字的公式为:
=MID(A2,FIND("/",A2)+1,2*LEN(A2)-LENB(A2)-1)
例4:将提取的数字转化为可以计算的数值
如下图所示,A列是姓名、金额、城市三个信息的混合文本,要求提取金额。
从例2中,我们知道mid+find函数组合可以提取两个分隔符之间的数字。下图中B列的公式表面来看是没有什么问题的。
但是如果对提取的金额求和,SUM函数返回的值却是0。原因是mid返回的结果是文本,对文本求和,结果自然为0。
如果mid函数提取的数字需要进一步计算,需要将其转化为真正的数值。将文本型数值转换为真正的数值有多种方法。在本例中,在mid函数前添加“--”(即两个负号)就可以将结果转化为真正的数值。
如下图所示,B2单元格的公式为:
=--MID(A2,FIND("/",A2)+1,FIND("/",A2,FIND("/",A2)+1)-FIND("/",A2)-1)
在mid函数提取的结果前添加两个负号,将文本转化为可以计算的数值。