Skip to main content

快速從 Excel 中的文本字符串提取電子郵件地址 - 完整指南

Author: Xiaoyang Last Modified: 2025-05-12

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

A screenshot of mixed text strings in Excel for extracting email addresses

使用快速填充從文本字符串中提取電子郵件地址

Excel 的快速填充功能提供了一種快速且高效的方法,可根據您定義的模式自動格式化或提取數據。在本節中,我們將介紹如何使用快速填充從一列混合數據中提取電子郵件地址。此方法在處理包含各種類型文本的列表時特別有用,而您只需要提取電子郵件地址。

  1. 點擊相鄰列中的第一個單元格(例如 B2),您希望電子郵件地址出現在該位置。
  2. 手動輸入 A 列對應行中的電子郵件地址,然後按 Enter 鍵。
    例如,如果 A2 包含 "ana varela@gmail.com",則在 B2 中輸入 " ana varela@gmail.com "。
    A screenshot showing the manual entry of an email address in Excel before using Flash Fill
  3. 保持在 B3 單元格中,按下 "Ctrl + E" 啟動快速填充。
    Excel 將自動填滿 B 列的其餘部分,並提取電子郵件地址。
    A GIF of email addresses extracted using Flash Fill in Excel
注意:
  • 快速填充功能適用於 Excel 2013 及更高版本。如果您使用的是 Excel 2010 或更早版本,此功能可能不可用。
  • 確保應用快速填充的單元格格式為 '文本',以避免不必要的格式問題。

使用 Kutools 一鍵批量提取電子郵件地址

當涉及到從數據集中提取電子郵件地址時,Kutools for Excel 的 "提取郵箱地址" 功能提供了比 Excel 快速填充更強大的替代方案。雖然快速填充提供了一種手動的模式識別方法,但 Kutools for Excel 只需點擊一下即可自動化該過程,使其成為高效處理大量數據的理想選擇。這個工具不僅簡化了提取過程,還確保了準確性和速度,特別是在處理複雜或不一致的數據集時。

Kutools for Excel 提供超過 300 種進階功能,簡化複雜任務,提升創造力與效率。 結合 AI 能力,Kutools 能夠精準自動化任務,讓數據管理變得輕而易舉。Kutools for Excel 的詳細資訊...免費試用...

下載並安裝 Kutools for Excel 後,請按照以下步驟操作:

  1. 選擇要提取電子郵件地址的單元格區域。然後轉到選擇 "Kutools" > "文本" > "提取郵箱地址"。
  2. 在彈出的 "提取郵箱地址" 對話框中,選擇一個單元格來輸出電子郵件地址,然後點擊確定。
    A screenshot of the Kutools Extract Email Address feature in action
結果

然後立即提取所選區域每個單元格中的所有電子郵件地址。

A screenshot showing the results of email extraction using 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)))

A screenshot showing a formula for extracting email addresses in Excel

2. 然後按 Enter 鍵,選擇單元格 B1,並將填充柄拖動到您希望包含此公式的範圍。然後從文本字符串中提取範圍內的電子郵件地址。見截圖:

A screenshot of email addresses extracted using a formula in Excel

注意:

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),見截圖:

A screenshot showing a user-defined function for extracting email addresses in Excel

4. 然後按 Enter 鍵,選擇單元格 B1,並將填充柄拖動到您需要公式的範圍。然後從單元格文本中提取所有電子郵件地址。見截圖:

A screenshot of email addresses extracted using a user-defined function in Excel

注意:

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 的範圍,見截圖:

A screenshot showing the range selection for VBA email extraction in Excel

4. 然後點擊確定,電子郵件地址已從選定的文本字符串中提取出來。見截圖:

A screenshot showing the original text before using VBA for email extraction Arrow A screenshot of the results after extracting emails with VBA code in Excel

注意:

1. 如果單元格中沒有電子郵件地址,它將顯示空白單元格。

2. 如果單元格中有不止一個電子郵件地址,所有電子郵件都將被提取。

3. 提取的電子郵件將覆蓋原始數據,因此建議先備份您的數據。


arrow blue right bubble 演示:使用 Kutools for Excel 從文本字符串中提取電子郵件地址

 
Kutools for Excel:超過 300 種實用工具任您使用!永久免費享受AI功能!立即下載!

相關文章:

如何在 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%,每天為您減少數百次鼠標點擊!