KutoolsforOffice — 一套方案,五大工具。事半功倍。三月特賣:20% 折扣

在 Excel 中快速從文字字串提取郵箱地址-完整指南

作者Xiaoyang修改日期

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

Excel 中混合文字字串的螢幕截圖,用於提取電子郵件地址

使用 Flash Fill 從文字字串中提取郵箱地址

Excel 的 Flash Fill 功能能根據您定義的模式,快速又高效地自動格式化或提取資料。本節將逐步說明如何運用 Flash Fill,從混合資料欄位中輕鬆擷取電子郵件地址。當您面對包含多種文字類型的清單,卻只需提取郵箱地址時,這個方法尤其實用。

  1. 按一下相鄰欄位中您希望用來顯示郵箱地址的第一個儲存格(例如 B2)。
  2. 手動輸入 A 欄對應列的郵箱地址,然後按下 Enter。
    例如,若 A2 包含「ana varela@gmail.com」,請在 B2 中輸入「ana varela@gmail.com」。
    在使用快速填滿前,於 Excel 中手動輸入電子郵件地址的螢幕截圖
  3. 停留在 B3 儲存格,按下「Ctrl + E」即可啟用 Flash Fill。
    Excel 將自動為您填滿 B 欄剩餘儲存格,提取出郵箱地址!
    使用 Excel 快速填滿功能提取電子郵件地址的 GIF 動圖
注意事項
  • Flash Fill 功能適用於 Excel 2013 及更高版本;若您使用的是 Excel 2010 或更早版本,則可能無法使用此功能。
  • 請務必將套用 Flash Fill 的儲存格格式設為「文字」,以避免產生不必要的格式問題。

使用 Kutools 一鍵批次從文字字串中提取郵箱地址

在從資料集中提取郵箱地址時,Kutools for Excel 的「提取郵箱地址」功能提供了比 Excel Flash Fill 更強大的替代方案。Flash Fill 雖需手動辨識模式,Kutools for Excel 卻只需一鍵即可自動完成整個流程,極適合高效處理大量資料。此工具不僅大幅簡化提取步驟,更能確保在處理複雜或格式不一致的資料集時,兼顧準確性與速度。

Kutools for Excel 提供超過 300 項進階功能,簡化複雜作業,提升創造力與效率。整合 AI 功能,Kutools 能精準自動化各項任務,讓資料管理輕鬆無負擔。Kutools for Excel 的詳細資訊……         免費試用……

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

  1. 選取您要從中提取郵箱地址的儲存格範圍,然後依序點選「Kutools」>「文字」>「提取郵箱地址」。
  2. 在彈出的「提取郵箱地址」對話框中,選取一個儲存格作為郵箱地址的輸出位置,然後點擊「確定」。
    Kutools「提取電子郵件地址」功能執行中的螢幕截圖
結果

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

使用 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)))

Excel 中用於提取電子郵件地址的公式螢幕截圖

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

使用 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),詳情請參閱截圖:

Excel 中用於提取電子郵件地址的使用者自訂函數螢幕截圖

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

使用 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 的範圍,詳情請參閱截圖:

Excel 中使用 VBA 提取電子郵件地址時的範圍選取螢幕截圖

4. 然後按一下「確定」,即可提取所選文字字串中的郵箱地址。請參閱截圖:

使用 VBA 提取電子郵件地址前的原始文字螢幕截圖箭頭使用 VBA 程式碼在 Excel 中提取電子郵件後的結果螢幕截圖

注意事項:

1. 若儲存格中無電子信箱地址,將顯示為空白。

2. 若儲存格內含多個郵箱地址,系統將自動提取所有電子郵件。

3. 提取出的電子郵件將覆寫原始資料,建議您事先備份。


藍色右向對話框箭頭 示範:使用 Kutools for Excel 從文字字串中提取郵箱地址

 
Kutools for Excel:超過 300 種實用工具隨手可得!盡享 AI 驅動功能,讓工作更聰明、更快速!立即下載!

相關文章:

如何在 Excel 中從多個電子郵件地址中提取網域名稱?

最佳 Office 生產力工具

🤖KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行     產生程式碼  建立自訂公式    分析資料並產生圖表  呼叫增強函數……
熱門功能尋找、醒目提示或標記重複值     刪除空白行     合併列或儲存格而不遺失資料     不使用公式的四捨五入……
高級 LOOKUP多重條件 VLookup    多重數值 VLookup     跨多個工作表 VLookup      模糊查找……
高級下拉列表快速建立下拉式清單     相依式下拉式清單     多選下拉式清單……
欄位管理員新增指定數量的欄位移動欄位切換隱藏欄位的可見狀態比較範圍與欄位……
精選功能網格聚焦     設計視圖   增強編輯欄    工作簿與工作表管理員     資源庫(自動文字)  日期提取     合併工作表    加密/解密儲存格    依清單傳送電子郵件     超級篩選      特殊篩選(篩選粗體儲存格/斜體/刪除線……) ......
頂尖 15 工具組12 文字工具添加文本刪除特定字符,……)   50+ 圖表 類型甘特圖,……)   40+ 實用公式基於生日計算年齡,……)   19 插入工具插入二維碼從路徑插入圖片,……)   12 轉換工具金額轉大寫匯率轉換,……)   7 合併和拆分工具高級合併行分割儲存格,……)……以及更多
在您的慣用語言中使用 Kutools—支援英文、西班牙文、德文、法文、中文及另外 40+ 種語言!

運用 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 應用程式協作的團隊使用!

ExcelWordOutlookTabsPowerPoint
  • 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
  • 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
  • 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
  • 30 天完整功能試用— 無需註冊,無需信用卡
  • 超值之選— 比單獨購買各增益集更省費用