如何从字符串中提取特定数字

时间:2017-02-02 19:13:02

标签: excel excel-formula

想知道是否有办法从中间文本中提取数字。例如下面,对于AG5612,有没有办法使用公式提取5612?因为中间文本的长度不同,我在使用LEFT,RIGHT和MID时会遇到困难。非常感谢。

Column A    
948321 AG5612 CA    
932 SA15 SA    
98223 WS8 FS

3 个答案:

答案 0 :(得分:1)

使用此数组公式:

=--MID(A1,FIND(" ",A1)+MIN(IFERROR(SEARCH({1,2,3,4,5,6,7,8,9,0},MID(A1,FIND(" ",A1)+1,LEN(A1))),1E+99)),FIND("{{{",SUBSTITUTE(A1," ","{{{",2))-MIN(IFERROR(SEARCH({1,2,3,4,5,6,7,8,9,0},MID(A1,FIND(" ",A1)+1,LEN(A1))),1E+99))-FIND(" ",A1))

作为数组公式,需要在退出编辑模式时使用Ctrl-Shift-Enter而不是Enter来确认。如果操作正确,那么Excel会将{}放在公式周围。

enter image description here

答案 1 :(得分:0)

此公式将找到数字开头的位置: =MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&"0123456789"))

在列中输入该内容,并将标题命名为Position。 然后,在另一列中,使用此公式仅提取数字:

=RIGHT(A1,LEN(A1)-position+1)

答案 2 :(得分:0)

我知道这已经得到了解答,但这里是一个缩短的非数组公式,它总是得到第一个空格后的数字(无论第一个空格和数字之间有多少个空格):

=LOOKUP(2^999,--MID(A1,MAX(INDEX(IFERROR(FIND({1,2,3,4,5,6,7,8,9,0},MID(A1,FIND(" ",A1),LEN(A1))),0),))+FIND(" ",A1)-ROW($1:$99)+1,ROW($1:$99)))

enter image description here