快速從 Excel 中的文本字符串提取電子郵件地址 - 完整指南
在處理匯入的數據或混合文本字符串時,您可能會發現需要快速且準確地提取電子郵件地址。無論您是在處理與其他文本混合的電子郵件地址列表,還是需要從大型數據集中提取電子郵件,都有幾種高效的方法可以完成這項工作。本指南將帶您了解從文本字符串中提取電子郵件地址的各種技術,包括使用快速填充、Kutools for Excel、公式、用戶定義函數和 VBA 代碼。每種方法根據您的需求和數據的複雜性提供不同的優勢。

使用快速填充從文本字符串中提取電子郵件地址
Excel 的快速填充功能提供了一種快速且高效的方法,可根據您定義的模式自動格式化或提取數據。在本節中,我們將介紹如何使用快速填充從一列混合數據中提取電子郵件地址。此方法在處理包含各種類型文本的列表時特別有用,而您只需要提取電子郵件地址。
- 點擊相鄰列中的第一個單元格(例如 B2),您希望電子郵件地址出現在該位置。
- 手動輸入 A 列對應行中的電子郵件地址,然後按 Enter 鍵。 例如,如果 A2 包含 "ana varela@gmail.com",則在 B2 中輸入 " ana varela@gmail.com "。
- 保持在 B3 單元格中,按下 "Ctrl + E" 啟動快速填充。 Excel 將自動填滿 B 列的其餘部分,並提取電子郵件地址。
- 快速填充功能適用於 Excel 2013 及更高版本。如果您使用的是 Excel 2010 或更早版本,此功能可能不可用。
- 確保應用快速填充的單元格格式為 '文本',以避免不必要的格式問題。
使用 Kutools 一鍵批量提取電子郵件地址
當涉及到從數據集中提取電子郵件地址時,Kutools for Excel 的 "提取郵箱地址" 功能提供了比 Excel 快速填充更強大的替代方案。雖然快速填充提供了一種手動的模式識別方法,但 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 助手:以智能執行為基礎,革新數據分析 |生成程式碼 | 創建自訂公式 | 分析數據並生成圖表 | 調用 Kutools 增強函數… |
熱門功能:查找、選取項目的背景色或標記重複值 | 刪除空行 | 合併列或單元格且不遺失數據 | 四捨五入(免公式)... | |
高級 LOOKUP:多條件 VLookup|多值 VLookup|多表查找|模糊查找... | |
高級下拉列表:快速創建下拉列表 |依賴型下拉列表 | 多選下拉列表... | |
列管理器:添加指定數量的列 | 移動列 | 切換隱藏列的顯示狀態 | 比較區域及列... | |
精選功能:網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿及工作表管理器 | 資源庫(快捷文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按列表發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/傾斜/刪除線...)... | |
15 大工具集:12 項文本工具(添加文本、刪除特定字符…)|50+ 儀表 類型(甘特圖等)|40+ 實用 公式(基於生日計算年齡等)|19 項插入工具(插入QR码、根據路徑插入圖片等)|12 項轉換工具(金額轉大寫、匯率轉換等)|7 項合併與分割工具(高級合併行、分割儲存格等)|...及更多 |
運用 Kutools for Excel,全面提升您的 Excel 技能,體驗前所未有的高效。 Kutools for Excel 提供超過300 項進階功能,讓您提升工作效率、節省時間。 點此尋找您最需要的功能...
Office Tab 為 Office 帶來分頁介面,讓您的工作更加輕鬆簡單
- 在 Word、Excel、PowerPoint 中啟用分頁編輯與閱讀。
- 在同一視窗的新分頁中打開與創建多份文件,而非開啟新視窗。
- 提升您的生產力50%,每日可幫您減少數百次鼠標點擊!
所有 Kutools 外掛,一次安裝
Kutools for Office 套裝整合了 Excel、Word、Outlook 和 PowerPoint 的外掛,外加 Office Tab Pro,非常適合需要跨 Office 應用程式協同作業的團隊。





- 全合一套裝 — Excel、Word、Outlook及 PowerPoint 外掛 + Office Tab Pro
- 一鍵安裝,一份授權 — 幾分鐘完成設置(支援 MSI)
- 協同運作更順暢 — Office 應用間無縫提升生產力
- 30 天全功能試用 — 無需註冊、無需信用卡
- 最超值 — 一次購買,節省單獨外掛費用