mid函数不简单,这四个高级用法,你会吗?
Hello,大家好!这次和大家分享mid函数的用法。mid函数用于提取字符,本身的用法非常简单,使用情形也很有限。实际工作中,我们经常需要将mid函数和其他函数组合使用。因此,本文除了介绍mid函数的基础用法,还会进一步讲解mid函数与len函数、find函数的组合用法。
1
基础用法
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个字符处。
例2:提取两个分隔符之间的文本
如下图所示,姓名、ID、城市之间使用“/”分隔,要求提取ID。
想要使用mid函数提取分隔符“/”之间的数字,关键是找到“/”在文本中第一次、第二次出现的位置。
通过例1,我们知道了如何使用find函数找到分隔符“/”第一次出现的位置。那么如何找到“/”第二次出现的位置呢?
如下图所示,以B2单元格的公式为例,=FIND("/",A2,FIND("/",A2,1)+1),表示在A2单元格中找到“/”出现的位置,但不是从第1个字符开始查找,而是从“/”第一次出现位置的下一个字符开始查找。FIND("/",A2,1)返回“/”第一次出现的位置,Find函数默认从第1个字符开始查找,因此第三个参数“1”可以省略。
例3:提取数字
如下图所示,姓名和ID之间以“/”分隔,ID全部为数字,ID和描述之间没有分隔符号。那么如何提取数字ID呢?
使用mid函数提取数字,起始位置是“/”的下一个字符,用find函数即可找到起始位置。但是如何找到数字的个数呢?我们可以使用len函数、lenb函数。
如下图所示,lenb函数可以返回字节数量。一个汉字是两个字节,一个字母或数字是1个字节,“/”也是一个字节。lenb(A2)返回结果“15”,len(A2)返回结果“10”,相差的“5”就是汉字的个数。
=MID(A2,FIND("/",A2)+1,2*LEN(A2)-LENB(A2)-1)
例4:将提取的数字转化为可以计算的数值
如下图所示,A列是姓名、金额、城市三个信息的混合文本,要求提取金额。
从例2中,我们知道mid+find函数组合可以提取两个分隔符之间的数字。下图中B列的公式表面来看是没有什么问题的。
但是如果对提取的金额求和,SUM函数返回的值却是0。原因是mid返回的结果是文本,对文本求和,结果自然为0。
如果mid函数提取的数字需要进一步计算,需要将其转化为真正的数值。将文本型数值转换为真正的数值有多种方法。在本例中,在mid函数前添加“--”(即两个负号)就可以将结果转化为真正的数值。
如下图所示,B2单元格的公式为:
点个在看你最好看
0条评论