怎麼快速刪除多餘的電話號碼和手機號碼
數據量不大 就power query吧,我的excel版本有點老,最新的應該能直接拆分成行,篩選一下長度,分組加索引,篩選第一個就得到了
vba
Sub tt() Dim arr, arr1, i arr = ActiveSheet.[a1].CurrentRegion For i = 2 To UBound(arr) arr1 = Split(arr(i, 2), ";") arr(i, 2) = "" For Each s In arr1 If Len(s) = 3 Then arr(i, 2) = s Exit For End If Next Next [g1].Resize(UBound(arr), UBound(arr, 2)) = arr End Sub
在你的例子里有座機號碼和手機號碼,而且座機號碼不是每個人都有(因此用分列工具會出現麻煩),座機號碼帶短劃線,但是有部分人的座機號沒寫上短劃線,用公式的話會比較麻煩(因為有的人只有1個手機號,沒有分號作為分隔,需要做判斷)
推薦使用正則表達式提取手機號,代碼以及效果如下:
點擊「開發工具」-「Visual Basic」,右鍵插入模塊(沒有開發工具選項卡的找到文件選項卡,找到選項,在自定義功能區裡面找到開發工具,勾選上點擊確定)
在模塊里將以下代碼輸入:
重要的是以下標藍色的代碼,Sub後面自己隨便寫個名稱即可。如果不保留源數據直接替換的話將For Each循環里的Rng.offset(0,1)的.offset(0,1)刪掉即可
代碼寫完了以後可以插入一個按鈕,方便執行
當然還有powerquery工具也可以做,才疏學淺就不提了
選中B列,點擊數據一分列一智能分列一分割符號輸入;(我看你圖裡好像就用了這一個符號哈)一完成。
最後你看看是怎麼自己刪除留用。
不懂啥函數,我就只能提供這個笨辦法了。 ?♂?
注意到電話號碼之間的分隔符都是分號,那就直接用find找到分號所在的位置,再用left函數把分號左邊的內容摳出來就行。沒有找到就不用摳,加一個iF函數判斷。
這樣就不需要區分固話號碼還是手機號碼了
你如果想把第一個電話號碼提取出來就會相當於刪除多餘的號碼了。用函數=left(選中要處理電話號碼的單元格,11),然後下拉就全部出來了。再把公式複製,選擇性粘貼為數值即可。固話有-才能正確提取。提後面的號碼把left改成right.提取中間的號碼=mid(選中要處理的單元格,13,11)。只限號碼都是11位。這三個函數可以多學習,簡單實用。
選中B列,Ctrl+H打開替換對話框,上面輸入;* 下面空著,點擊全部替換,收工
※如何利用excel將n個相同格式的工作表內的信息匯總?※怎樣用vlookup身份證號匹配卡號?※excel如何合併同一行內的多個單元格的電話號碼,如下所示,將圖一合併成圖二。?※excel把A跟B列相同的數據從B列中刪除,直接得到想要的結果。怎麼操作?※在excel中如何快捷將一個4*4帶行列標題的表格轉為對應3*10帶行標題的表格(實際數據多),如圖?
TAG:MicrosoftExcel | Excel使用 | 電子表格 |