excel 如何提取单元格内文本内容里的数值

a1:"近16场,胜5平3负8, 胜率:31.3% 赢盤率:46.2% 大球(>2.5):33% 单率:50%",现希望在a2~a9分别提取16、5、3、8、31.3%、46.2%、33%、50%,其中各数值长度不一致

这么个性化的问题似乎只能用VBA编辑自定义函数了。

可以用下面的自定义函数求出字符串中的第n个数值:

 

 

'找出字符串中的第N个数值

Function GetNum(srcTxt$, n%)

Dim stt%, nn%, i%

stt = 1: i = 1

Do While i < Len(srcTxt)

    If IsNumeric(Mid(srcTxt, i, 1)) Then

        Do

            i = i + 1

            If i > Len(srcTxt) Then Exit Do

        Loop While IsNumeric(Mid(srcTxt, stt, i - stt + 1))

        nn = nn + 1

        If nn = n Then

            GetNum = Val(Mid(srcTxt, stt, i - stt))

            If Mid(srcTxt, i, 1) = "%" Then GetNum = GetNum / 100

            Exit Function

        End If

    Else

        i = i + 1

    End If

    stt = i

Loop

GetNum = ""

End Function

 

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-21
如果你的每条数据的内容都是
近X场,胜x平x负x, 胜率:x% 赢盤率:x% 大球(>2.5):x% 单率:x%
的形式,就好弄。
那些汉字和符号就是你使用mid进行提取的标记
第2个回答  2013-03-21
你好:可以用vba,地址我发你私信时,这里不让发网址。
相似回答