如何在 Excel 中將電話號碼的區碼分離出來?
如果您在 Excel 工作表中有一份客戶電話號碼清單,並希望根據地理區域分析或分組客戶,從完整電話號碼中提取區碼就顯得至關重要。這在您需要依據區碼篩選、排序或彙總資料,以執行行銷活動、物流規劃或製作地區性報表等任務時尤其實用。Excel 提供多種高效方法來提取區碼,選擇最適合的方式取決於您的資料結構與個人偏好。以下介紹三種在 Excel 中從電話號碼分離區碼的實用技巧,每種方法各有優勢與適用情境。
在 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. 在「轉換文字分列精靈」中,選擇固定寬度,然後按一下下一步。若區碼位於號碼開頭且長度固定,此選項最為合適。請參閱截圖:

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

若您的號碼格式或長度不一,建議啟用「分隔符號」選項,並指定特定分隔符號,例如空格、連字號或括號。
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 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 應用程式協作的團隊使用!
- 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
- 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
- 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
- 30 天完整功能試用— 無需註冊,無需信用卡
- 超值之選— 比單獨購買各增益集更省費用