快速從 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 從文本字符串中提取電子郵件地址
相關文章:
最佳辦公效率工具
🤖 | 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、Publisher、Access、Visio 和 Project 中啟用標籤式編輯和閱讀。
- 在同一窗口的新標籤中打開和創建多個文檔,而不是在新窗口中。
- 將您的生產力提高 50%,每天為您減少數百次鼠標點擊!