在列中显示字符串中的数字

时间:2015-06-16 07:21:00

标签: excel

我有一列(B)(超过3k的细胞):

TestUrl
__________________________________
http://www.testing.eu/test123.html

http://www.testing.eu/test154.html

http://www.testing.eu/test983.html

.. and so on ...

我想在C栏中只获取数字:

Numbers
__________
123

154

983

..and so on..

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:1)

使用数组公式.. 假设您的数据从B2开始。 在C2的公式栏中输入此内容。 然后按CTRL + SHIFT + ENTER而不是按ENTER键。 然后向下拖动以复制到下面的其他单元格。

= SUMPRODUCT(MID(0& B2 ,LARGE(INDEX(ISNUMBER( - MID( B2 ,ROW($ 1:$ 50),1))*行($ 1:$ 50),0),ROW($ 1:$ 50))+ 1,1)* 10 ^ ROW($ 1:$ 50)/ 10)

如果您的数据从其他地方开始,则

更改公式中的B2。只需确保在更改后按CTRL + SHIFT + ENTER而不是ENTER。

得到了这个: http://www.extendoffice.com/documents/excel/1622-excel-extract-number-from-string.html

答案 1 :(得分:0)

将B列数据复制到记事本中,并用空字符串替换http://www.testing.eu/test,然后用.html做同样的事情。更换/删除这些字符串粘贴后,C列中的记事本内容

答案 2 :(得分:0)

使用B栏中的公式:

=MID(A1,LEN("http://www.testing.eu/test") + 1, LEN(A1) - LEN(".html") - LEN("http://www.testing.eu/test"))

使用VBA和Regex:

Sub GetNumberFromURL()
    Dim regEx As Object, matches As Object, cl As Range

    Set regEx = CreateObject("vbscript.regexp")

    regEx.Pattern = "([0-9]+)"

    For Each cl In Range("A1:A10") //Update to suit your needs

        Set matches = regEx.Execute(cl)
        cl.Offset(0, 1) = matches.Item(0)
    Next
End Sub