如何在EXCEL中提取一组含文字与数字的字符串中的数字

在EXCEL中有一列分别由文字与数字组成的字符串,且字符长短均不相同。例如:在R2列是#洪房他1000521,在R3列是#南房莲他字第25512,依次下来的一组数据。如何用函数只提取其中的数字。请用函数直接表达出来好吗,谢谢

假定需要处理的信息在A列从A1开始,以下几种方法可提取数字:
1、文字在前数字在后:取数字公式=RIGHT(A1,LENB(A1)-LEN(A1)) 下拉填充
2、数字在前文字在后:取数字公式=LEFT(A1,2*LEN(A1)-LENB(A1)) 下拉填充3、数字在中间、文字在两边:取数字公式=-LOOKUP(0,-MID(A1,ROW(INDIRECT("1:"&LEN(A1))),2*LEN(A1)-LENB(A1))) 下拉填充
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-03
如果你的数字都是在右边并且是连续的,在S2输入公式==MAX(--TEXT(RIGHT(R2,ROW($1:$20)),"0;0;0;\0")) 数组公式,按ctrl+shift+enter结束
第2个回答  2012-04-03
按ALT+F11,插入-模块,复制下列语句

Function SplitNumEng(str As String, sty As Byte)
Dim StrA As String
Dim StrB As String
Dim StrC As String
Dim i As Integer
Dim SigS As String
For i = 1 To Len(str)
SigS = Mid(str, i, 1)
If SigS Like "[a-zA-Z]" Then
StrA = StrA & SigS
ElseIf SigS Like "#" Then
StrB = StrB & SigS
Else
StrC = StrC & SigS
End If
Next i
Select Case sty
Case 1
SplitNumEng = StrA
Case 2
SplitNumEng = StrB
Case Else
SplitNumEng = StrC
End Select
End Function

你的数据在r2
S2输入 =SplitNumEng(R2,2)

或直接用公式
=RIGHT(Q2,LEN(LOOKUP(9E+307,--RIGHT(Q2,ROW(1:50)))))
同时按CTRL SHIFT 回车键

=MID(Q2,MIN(IF(ISNUMBER(FIND(ROW($1:$10)-1,Q2)),FIND(ROW($1:$10)-1,Q2))),LEN(Q2))
同时按CTRL SHIFT 回车键 下拉公式本回答被网友采纳
第3个回答  2012-04-03
=MAX(IF(ISERR(--RIGHT(A1,ROW($1:$10))),0,--RIGHT(A1,ROW($1:$10)))) ctrl+shift+enter
相似回答