KutoolsforOffice — 一套方案,五大工具。事半功倍。三月特賣:20% 折扣

如何在 Excel 中將電話號碼的區碼分離出來?

作者Sun修改日期

如果您在 Excel 工作表中有一份客戶電話號碼清單,並希望根據地理區域分析或分組客戶,從完整電話號碼中提取區碼就顯得至關重要。這在您需要依據區碼篩選、排序或彙總資料,以執行行銷活動、物流規劃或製作地區性報表等任務時尤其實用。Excel 提供多種高效方法來提取區碼,選擇最適合的方式取決於您的資料結構與個人偏好。以下介紹三種在 Excel 中從電話號碼分離區碼的實用技巧,每種方法各有優勢與適用情境。

在 Excel 中使用公式從電話號碼分離區碼

使用「文字分列」功能從電話號碼分離區碼

VBA 程式碼 – 自動從電話號碼提取區碼


在 Excel 中使用公式從電話號碼分離區碼

當您的電話號碼始終遵循相同格式(例如北美標準電話號碼,其區碼永遠是前三位數字)時,此方法最為理想。運用公式不僅快速又簡單,更適用於小型至中等規模的清單。

通常,無論電話號碼是否包含連字號或括號,區碼都是該號碼字串的前三個字元。針對每個號碼皆以區碼開頭的基本情況,您可以使用下列公式:

1. 選取您希望顯示提取後區碼的儲存格(例如,若電話號碼位於 B1,則選取 C1),並輸入下列公式:

=MID(B1,1,3)

2. 按下 Enter 確認,區碼就會自動出現。若想快速套用至整個清單,只需拖曳該儲存格右下角的填滿控點,向下覆蓋所有對應的電話號碼即可!

使用公式將區碼與電話號碼分離

注意:若您的電話號碼包含空格、連字號或括號等格式(例如「(123)456-7890」或「123-456-7890」),可能需要調整公式以正確處理這些格式。以下是針對含括號電話號碼的範例公式:

=MID(B1,2,3)

您可以根據特定的資料格式調整起始位置與長度。務必檢查幾個樣本,確保公式僅傳回預期的區碼;若資料集中混用多種格式,則可能需要額外的邏輯處理或事先進行資料清理。

若公式未能正確提取預期的區碼,請先檢視電話號碼的原始格式,並據此調整公式。例如,您可靈活運用 LEFT()RIGHT()SEARCH()等函數,輕鬆應對更複雜的資料模式!


在 Excel 中使用「文字分列」功能從電話號碼分離區碼

當處理固定長度的電話號碼,或區碼與號碼其餘部分的位置始終一致時,此方法格外實用。「文字分列」工具可依據固定寬度或指定的分隔符號來分割資料。此方法適用於中等規模的資料集,但不建議用於格式高度不一致的電話號碼,或需要大量資料清理的情境。

1. 選取包含電話號碼清單的欄位,前往頂部功能區,點擊資料> 文字分列。請參閱截圖:

使用「文字分列」功能將區碼與電話號碼分離

2. 在「轉換文字分列精靈」中,選擇固定寬度,然後按一下下一步。若區碼位於號碼開頭且長度固定,此選項最為合適。請參閱截圖:

文字分列功能精靈1

3. 在下一畫面中,請按一下區碼後方以設定欄位寬度(若區碼為三位數,請在第三個字元後點擊)。如有需要,可調整或移動斷行線,使其符合您的資料格式。請參閱截圖:

文字分列功能精靈2

若您的號碼格式或長度不一,建議啟用「分隔符號」選項,並指定特定分隔符號,例如空格、連字號或括號。

4. 按一下完成。此時欄位已完成分割,區碼會移至新欄位,方便您依區碼進行分析或分組。

使用「文字分列」功能將區碼與電話號碼分離以取得結果

提示:執行前務必在精靈中檢視預覽畫面。若資料顯示不正確,請返回調整斷行線或分隔符號設定。建議使用「文字分列」功能前先備份工作表,以免覆寫相鄰欄位中的資料!


VBA 程式碼 – 自動從電話號碼提取區碼

對於大型資料集或格式不規則的電話號碼清單,撰寫簡易 VBA 巨集能提供一種可擴充且高效的方式,精準提取區碼。當您在處理可能包含括號、連字號、空格將或其他非標準字元的區碼時,此方法尤其實用。VBA 可依需求自訂提取邏輯,比起基於公式的做法,更能靈活應對各種例外狀況。

1. 在 Excel 功能區中按一下開發人員,然後選取 Visual Basic 以開啟 VBA 編輯器。在新開啟的 Microsoft Visual Basic for Applications 視窗中,按一下插入 > 模組,並將下列程式碼複製貼上至模組中:

Sub ExtractAreaCodes()
    Dim cell As Range
    Dim phoneStr As String
    Dim areaCode As String
    Dim regEx As Object
    Set regEx = CreateObject("VBScript.RegExp")
    
    regEx.Pattern = "\(?(\d{3})\)?[-\s.]?"
    regEx.Global = False
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set phoneRange = Application.InputBox("Select phone number range", xTitleId, "", Type:=8)
    
    For Each cell In phoneRange
        phoneStr = cell.Value
        If regEx.Test(phoneStr) Then
            areaCode = regEx.Execute(phoneStr)(0).SubMatches(0)
            cell.Offset(0, 1).Value = areaCode
        Else
            cell.Offset(0, 1).Value = ""
        End If
    Next cell
    
    Set regEx = Nothing
End Sub

2. 若要執行巨集,請在 VBA 編輯器中按一下執行按鈕按鈕。系統將彈出對話方塊,提示您選取包含電話號碼的範圍。巨集會自動提取區碼,並將結果置於所選資料所在欄位的右側欄位中(例如,若電話號碼位於 B 欄,區碼將出現在 C 欄)。

提示:此程式碼適用於區碼後緊接括號、連字號、空格或句點(無論是否存在)的電話號碼。若您遇到更複雜的格式,可進一步調整程式碼中的正規表示式。務必檢視輸出結果,並修正任何提取失敗的情形,例如遺漏區碼或格式異常的號碼。


相關文章:

最佳 Office 生產力工具

🤖KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行     產生程式碼  建立自訂公式    分析資料並產生圖表  呼叫增強函數……
熱門功能尋找、醒目提示或標記重複值     刪除空白行     合併列或儲存格而不遺失資料     不使用公式的四捨五入……
高級 LOOKUP多重條件 VLookup    多重數值 VLookup     跨多個工作表 VLookup      模糊查找……
高級下拉列表快速建立下拉式清單     相依式下拉式清單     多選下拉式清單……
欄位管理員新增指定數量的欄位移動欄位切換隱藏欄位的可見狀態比較範圍與欄位……
精選功能網格聚焦     設計視圖   增強編輯欄    工作簿與工作表管理員     資源庫(自動文字)  日期提取     合併工作表    加密/解密儲存格    依清單傳送電子郵件     超級篩選      特殊篩選(篩選粗體儲存格/斜體/刪除線……) ......
頂尖 15 工具組12 文字工具添加文本刪除特定字符,……)   50+ 圖表 類型甘特圖,……)   40+ 實用公式基於生日計算年齡,……)   19 插入工具插入二維碼從路徑插入圖片,……)   12 轉換工具金額轉大寫匯率轉換,……)   7 合併和拆分工具高級合併行分割儲存格,……)……以及更多
在您的慣用語言中使用 Kutools—支援英文、西班牙文、德文、法文、中文及另外 40+ 種語言!

運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……


Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!

  • 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
  • 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
  • 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!

所有 Kutools 增益集,一個安裝程式

Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!

ExcelWordOutlookTabsPowerPoint
  • 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
  • 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
  • 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
  • 30 天完整功能試用— 無需註冊,無需信用卡
  • 超值之選— 比單獨購買各增益集更省費用