excel 截取中间某部分的数据

第一列比如有这样几个数据
GYTA-8B1.3
GYTS-144B1.2
GYXTW-288B1.2

这样的数据,我打算截取符号“-”后面,字母“B”前面的那个数字到第二列,excel要在第二列中怎么写函数?

有三个提取字符串字符的函数分别是LEFT,MID,RIGHT。

一、LEFT函数
也应用于:LEFTB

LEFT 基于所指定的字符数返回文本字符串中的第一个或前几个字符。
LEFTB 基于所指定的字节数返回文本字符串中的第一个或前几个字符。此函数用于双字节字符。

语法
LEFT(text,num_chars)
LEFTB(text,num_bytes)
Text 是包含要提取字符的文本字符串。
Num_chars 指定要由 LEFT 所提取的字符数。
Num_chars 必须大于或等于 0。
如果 num_chars 大于文本长度,则 LEFT 返回所有文本。
如果省略 num_chars,则假定其为 1。
Num_bytes 按字节指定要由 LEFTB 所提取的字符数。

二、MID函数
也应用于:MIDB

MID 返回文本字符串中从指定位置开始的特定数目的字符,该数目由用户指定。
MIDB 返回文本字符串中从指定位置开始的特定数目的字符,该数目由用户指定。此函数用于双字节字符。

语法
MID(text,start_num,num_chars)
MIDB(text,start_num,num_bytes)
Text 是包含要提取字符的文本字符串。
Start_num 是文本中要提取的第一个字符的位置。文本中第一个字符的 start_num 为 1,以此类推。
Num_chars 指定希望 MID 从文本中返回字符的个数。
Num_bytes 指定希望 MIDB 从文本中返回字符的个数(按字节)。
说明
如果 start_num 大于文本长度,则 MID 返回空文本 ("")。
如果 start_num 小于文本长度,但 start_num 加上 num_chars 超过了文本的长度,则 MID 只返回至多直到文本末尾的字符。
如果 start_num 小于 1,则 MID 返回错误值 #VALUE!。
如果 num_chars 是负数,则 MID 返回错误值 #VALUE!。
如果 num_bytes 是负数,则 MIDB 返回错误值 #VALUE!。

三、RIGHT函数
也应用于:IGHTB

RIGHT 根据所指定的字符数返回文本字符串中最后一个或多个字符。
RIGHTB 根据所指定的字符数返回文本字符串中最后一个或多个字符。此函数用于双字节字符。

语法
RIGHT(text,num_chars)
RIGHTB(text,num_bytes)
Text 是包含要提取字符的文本字符串。
Num_chars 指定希望 RIGHT 提取的字符数。
Num_bytes 指定希望 RIGHTB 根据字节所提取的字符数。
说明
Num_chars 必须大于或等于 0。
如果 num_chars 大于文本长度,则 RIGHT 返回所有文本。
如果忽略 num_chars,则假定其为 1。

四、举例
假设A1单元格的内容为“中华人民共和国”

1.如果要在B1单元格取得A1单元格的前两个字符(汉字的两个字符如果按字节来算则是4个字节,一个汉字为两个字节),即“中华”两字,则B1单元格可以写入公式
=LEFT(A1,2)
或
=LEFTB(A1,4)

2.如果要在C1单元格取得A1单元格的第三个字符起的两个字符(汉字的两个字符如果按字节来算则是4个字节,一个汉字为两个字节),即“人民”两字,则C1单元格可以写入公式
=MID(A1,3,2)
或
=MIDB(A1,5,4)

3.如果要在D1单元格取得A1单元格的最后三个字符(汉字的三个字符如果按字节来算则是6个字节,一个汉字为两个字节),即“共和国”三字,则D1单元格可以写入公式
=RIGHT(A1,3)
或
=RIGHTB(A1,6)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-15
不好意思,不太清楚你说的是什么,如果打算截取符号“-”后面直到最后,就用下面的公式
=RIGHT(A1,(LENB(A1)-FIND("-",A1)))
第2个回答  2011-11-15
=MIDB(A2,SEARCH("-",A2)+1,SEARCH("B",A2)-SEARCH("-",A2)-1)
找寻“-”和“b"的位置,在提取相应位置的字幅。
但前提是“-”前面没有包含“b”.
第3个回答  2011-11-15
假设数据在AI,在B1中输入:
=MID(A1,FIND("-",A1)+1,FIND("B",A1)-FIND("-",A1)-1)
下面的复制就行了。本回答被提问者采纳
第4个回答  2011-11-15
截取我不知道怎么实现,但你可以用替换来实现。
1.把第一列的数据复制到第二列来
2.选中第二列整列(注意此操作可以避免替换的时候把第一列的数据也替换掉)
3.压Ctrl+F,弹出替换对话框,原内容里填:*- 替换后里不填,单击全部替换,会把-前面的数据都替换掉,再在原内容里填:B* 替换后里不填,单击全部替换,OK了