在 Excel 中快速從文字字串提取郵箱地址-完整指南
當您在 Excel 中處理匯入資料或混合文字字串時,可能需要快速又精準地提取電子郵件地址。無論您是要從夾雜其他文字的清單中擷取郵箱,還是要從龐大資料集中找出電子郵件,都有多種高效方法可達成目標。本指南將逐步介紹從文字字串中提取郵箱地址的各種技巧,包括使用 Flash Fill、Kutools for Excel、公式、自訂函數以及 VBA 程式碼,每種方法皆依您的需求與資料複雜度提供獨特優勢。

使用 Flash Fill 從文字字串中提取郵箱地址
Excel 的 Flash Fill 功能能根據您定義的模式,快速又高效地自動格式化或提取資料。本節將逐步說明如何運用 Flash Fill,從混合資料欄位中輕鬆擷取電子郵件地址。當您面對包含多種文字類型的清單,卻只需提取郵箱地址時,這個方法尤其實用。
- 按一下相鄰欄位中您希望用來顯示郵箱地址的第一個儲存格(例如 B2)。
- 手動輸入 A 欄對應列的郵箱地址,然後按下 Enter。例如,若 A2 包含「ana varela@gmail.com」,請在 B2 中輸入「ana varela@gmail.com」。

- 停留在 B3 儲存格,按下「Ctrl + E」即可啟用 Flash Fill。Excel 將自動為您填滿 B 欄剩餘儲存格,提取出郵箱地址!

- Flash Fill 功能適用於 Excel 2013 及更高版本;若您使用的是 Excel 2010 或更早版本,則可能無法使用此功能。
- 請務必將套用 Flash Fill 的儲存格格式設為「文字」,以避免產生不必要的格式問題。
使用 Kutools 一鍵批次從文字字串中提取郵箱地址
在從資料集中提取郵箱地址時,Kutools for Excel 的「提取郵箱地址」功能提供了比 Excel Flash Fill 更強大的替代方案。Flash Fill 雖需手動辨識模式,Kutools for Excel 卻只需一鍵即可自動完成整個流程,極適合高效處理大量資料。此工具不僅大幅簡化提取步驟,更能確保在處理複雜或格式不一致的資料集時,兼顧準確性與速度。
下載並安裝 Kutools for Excel 後,請依照下列步驟操作:
- 選取您要從中提取郵箱地址的儲存格範圍,然後依序點選「Kutools」>「文字」>「提取郵箱地址」。
- 在彈出的「提取郵箱地址」對話框中,選取一個儲存格作為郵箱地址的輸出位置,然後點擊「確定」。

結果
此時,所選區域中每個儲存格內的郵箱地址將立即被提取出來。

Kutools for Excel-透過超過 300 項必備工具全面強化 Excel,讓您的工作更快速、更輕鬆,並運用 AI 功能實現更聰明的資料處理與高效生產力!立即取得
使用公式從文字字串中提取郵箱地址
以下將為您介紹一個長公式,可從 Excel 文字中精準提取電子郵件地址。請依照下列步驟操作:
1. 在相鄰的 B1 儲存格中,輸入下列公式:
=TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND (" ",A1&" ",FIND("@",A1))-1)," ", REPT(" ",LEN(A1))),LEN(A1))) 
2. 接著按下 ENTER 鍵,選取 B1 儲存格,並將填滿控點拖曳至您希望套用此公式的範圍,即可從文字字串中提取出該範圍內的郵箱地址。請參閱截圖:

注意事項:
1. 郵箱地址後方的標點符號也會一併被提取。
2. 若儲存格中不含電子郵件地址,公式將顯示錯誤值。
3. 若儲存格中包含多個郵箱地址,公式僅會提取第一個。
使用使用者自訂函數從文字字串中提取郵箱地址
除了上述公式外,使用者自訂函數也能協助您從文字字串中提取郵箱地址。
1. 按下並按住「Alt + F11」鍵,即可開啟「Microsoft Visual Basic for Applications」視窗。
2. 點選「插入」>「模組」,並將下列巨集貼上至模組視窗中。
Function ExtractEmailFun(extractStr As String) As String
'Update by extendoffice
Dim CharList As String
On Error Resume Next
CheckStr = "[A-Za-z0-9._-]"
OutStr = ""
Index = 1
Do While True
Index1 = VBA.InStr(Index, extractStr, "@")
getStr = ""
If Index1 > 0 Then
For p = Index1 - 1 To 1 Step -1
If Mid(extractStr, p, 1) Like CheckStr Then
getStr = Mid(extractStr, p, 1) & getStr
Else
Exit For
End If
Next
getStr = getStr & "@"
For p = Index1 + 1 To Len(extractStr)
If Mid(extractStr, p, 1) Like CheckStr Then
getStr = getStr & Mid(extractStr, p, 1)
Else
Exit For
End If
Next
Index = Index1 + 1
If OutStr = "" Then
OutStr = getStr
Else
OutStr = OutStr & Chr(10) & getStr
End If
Else
Exit Do
End If
Loop
ExtractEmailFun = OutStr
End Function 3. 儲存程式碼後,在相鄰的空白儲存格中輸入公式 =ExtractEmailFun(A1),詳情請參閱截圖:

4. 接著按下 ENTER 鍵,選取 B1 儲存格,並將填滿控點拖曳至您要套用公式的範圍,即可將所有郵箱地址從儲存格文字中提取出來。請參閱截圖:

注意事項:
1. 若儲存格中無電子信箱地址,將顯示為空白。
2. 若儲存格內含多個郵箱地址,系統將自動提取所有電子郵件。
使用 VBA 程式碼從文字字串中提取郵箱地址
若覺得上述公式過於繁瑣,以下 VBA 程式碼可助您快速提取郵箱地址。
1. 按下並按住「Alt + F11」鍵,即可開啟「Microsoft Visual Basic for Applications」視窗。
2. 點選「插入」>「模組」,並將下列巨集貼上至模組視窗中。
VBA:從文字字串中提取郵箱地址
Sub ExtractEmail()
'Update 20130829
Dim WorkRng As Range
Dim arr As Variant
Dim CharList As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
arr = WorkRng.Value
CheckStr = "[A-Za-z0-9._-]"
For i = 1 To UBound(arr, 1)
For j = 1 To UBound(arr, 2)
extractStr = arr(i, j)
outStr = ""
Index = 1
Do While True
Index1 = VBA.InStr(Index, extractStr, "@")
getStr = ""
If Index1 > 0 Then
For p = Index1 - 1 To 1 Step -1
If Mid(extractStr, p, 1) Like CheckStr Then
getStr = Mid(extractStr, p, 1) & getStr
Else
Exit For
End If
Next
getStr = getStr & "@"
For p = Index1 + 1 To Len(extractStr)
If Mid(extractStr, p, 1) Like CheckStr Then
getStr = getStr & Mid(extractStr, p, 1)
Else
Exit For
End If
Next
Index = Index1 + 1
If outStr = "" Then
outStr = getStr
Else
outStr = outStr & Chr(10) & getStr
End If
Else
Exit Do
End If
Loop
arr(i, j) = outStr
Next
Next
WorkRng.Value = arr
End Sub 3. 接著按下 F5 鍵執行此程式碼,並在彈出的對話方塊中選取您要套用 VBA 的範圍,詳情請參閱截圖:

4. 然後按一下「確定」,即可提取所選文字字串中的郵箱地址。請參閱截圖:
![]() | ![]() | ![]() |
注意事項:
1. 若儲存格中無電子信箱地址,將顯示為空白。
2. 若儲存格內含多個郵箱地址,系統將自動提取所有電子郵件。
3. 提取出的電子郵件將覆寫原始資料,建議您事先備份。
示範:使用 Kutools for Excel 從文字字串中提取郵箱地址
相關文章:
最佳 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 天完整功能試用— 無需註冊,無需信用卡
- 超值之選— 比單獨購買各增益集更省費用





