我有一列(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..
我怎样才能做到这一点?
答案 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