大众计算机学习网

专门提供各种电脑教程

用Excel公式查找字符串中*星号位置并取出数字的方法

Admin | 2010-11-25 9:04:27 | 被阅次数 | 14187

  对于单元格字符串中的字符的查找,*星号和?问号这样的字符和其它普通的字符的查找方式是不一样的,因为这两个符号还代表着其它的意义。

  所以,要想查找字符串中的,*星号和?问号,必须在其前面加上这样的一个符号 ~ 方能找到。

  下面,我们看例子吧。如下表。

  上表中,每个单元格都包含两个*星号,同时还包含三组数字,但是,每组数字的长度都不一样,有的长有的短。现在的问题是,如何把每个单元格中被*星号隔开的每数字分别取出来?

  一、问题的分析

  要想取出被两个*星号隔开的三组数字,关键的问题在于,如何知道并获取两个*星号分别处于字符串中的哪个位置。

  知道两个*星号的位置后,我们就可以使用截取函数将三组数字分别取出来。

  二、获取两个*星号的位置

  获取某个字符在字符串中所处的位置,可以使用SEARCH和SEARCHB函数来查找位置。

  两个函数的语法相同,如下:

  SEARCH(find_text,within_text,start_num)

  SEARCHB(find_text,within_text,start_num)

  不过,两个函数的区别在于,前者在查找的时候,把一个汉字的长度当作一个字符,后者则是以字节的方式来查找,一个汉字当两个字节,所以,一个汉字的长度就为2。一般情况下,在中文英文数字特殊字符混合的字符串中查找,应该使用SEARCH函数。

  把以上两个函数翻译成中文,其语法为:

  SEARCH(要找的字符,包含字符的字符串,从串中的第几个位置开始找)

  SEARCHB(要找的字符,包含字符的字符串,从串中的第几个位置开始找)

  有了如上的函数基础与理论指导,下面,我们开始查找两个星号的位置吧。

  ①第一个*星号的位置

  如下图,通过函数=SEARCH("~*",A1)即可获取第一个星号的位置,处于第5位。

  ②第二个*星号的位置

  第二个*星号的位置查找,就比较困难了,公式有点绕口令的感觉。

  总之,公式如下:=SEARCH("~*",A1,SEARCH("~*",A1)+1)

  看到了吧?上述的公式比较复杂,但是,却也很好理解。

  通过公式=SEARCH("~*",A1)可获得第一个位置,那么,再第一个位置的基础上加1,从这个位置开始继续往下找,就可以找到第二星号的位置,所以,公式就是上图中稍微绕口的函数了。

  三、从带有星号的字符串中提取数字

  有了一二的基础,现在,我们该是提取数字了。

  ①提前第一个星左边的数字公式

  =LEFT(A1,SEARCHB("~*",A1)-1)

  ②提取中间那个数字的公式

  =MID(A1,SEARCHB("~*",A1)+1,(SEARCHB("~*",A1,SEARCHB("~*",A1)+1))-SEARCHB("~*",A1)-1)

  好了,就讲到这里,相应的截取字符串函数的使用方法,请参阅此文:http://www.dzwebs.net/1874.html