當前位置:編程學習大全網 - 編程語言 - Excel雜亂數據中批量提取手機號

Excel雜亂數據中批量提取手機號

數據分析中有壹個重要的步驟,就是對數據進行預處理,數據的統壹格式化。

例:如何將左邊聯系方式中的手機號碼提取出來,結果如右邊單元格所示:

從A列單元格的數據看,是手機號和固定電話的混和在壹塊的,其中固定電話顯示也不規範,有的有區號,有的沒有區號,有的區號和電話用?-?連接在壹起,有的沒有,而手機號碼也不統壹,有壹個、二個、三個的。

如何數據量較少,可以逐個單元格復制提取,如果單元格很多的情況下,推薦使用VBA的方法批量提取,該VBA代碼可以直接復制使用,不用修改內容

在 Excel中按ATL+F11,進行編程模式下,插入壹個模塊,創建壹個自定義函數sz()函數

輸入的代碼如下所示:

Function sz(xstr As String)

Dim i As Integer

Dim n

For i = 1 To Len(xstr)

If Mid(xstr, i, 1) = 1 And IsNumeric(Mid(xstr, i, 11)) Then

n = Mid(xstr, i, 11)

If Len(n) = 11 Then

sz = sz & "/" & n

End If

End If

Next i

If Len(sz) Then

sz = Right(sz, Len(sz) - 1)

Else

sz =

End If

End Function

然後在單元格中調用自定義函數SZ(A2),得到的結果如下所示:

利用主要的提取原理:手機號第1位是1並且是11位數字

關鍵代碼解釋:

以A3單元格的值,做執行過程分析

58403844 15151884992 15195779387

這個字符的長度是32,讓i從1至32做壹個循環

i=1的時候,執行第壹個IF語句

Mid(xstr, i, 1)=5,並不等於1

直接結束IF語句,繼續i

那麽i=2時,IF也不成立

直到i=10的時候,

Mid(xstr, i, 1)=1,並且IsNumeric(Mid(xstr, i, 11))也是數字

那麽n就截取這11位,如果這個值是11位的,那就傳遞給sz保存下來

結果,繼續i,直到把所有的手機號截取完成

不知道有沒有看懂,沒有看懂的話,就直接復制代碼套用即可。

本節完,

  • 上一篇:怎麽裝逼
  • 下一篇:學C語言該怎麽學(以前從沒學過編程,只是想學而已,也沒接觸過編程)要詳細
  • copyright 2024編程學習大全網