メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

Excelでテキスト文字列からメールアドレスを迅速に抽出する - 完全ガイド

Author Xiaoyang Last modified

Excelでインポートされたデータや混合テキスト文字列を扱う際、メールアドレスを迅速かつ正確に抽出する必要が出てくることがあります。他のテキストと混ざったメールアドレスのリストを処理する場合や、大量のデータセットからメールを抽出する必要がある場合など、効率的な方法はいくつかあります。このガイドでは、フラッシュフィル、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」が含まれている場合、「ana varela@gmail.com」をB2に入力します。
    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. ポップアップする「電子メールアドレスを抽出する」ダイアログボックスで、出力先のセルを選択し、OKをクリックします。
    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つのセルに複数のメールアドレスがある場合、数式は最初のアドレスのみを抽出します。


ユーザー定義関数を使用してテキスト文字列からメールアドレスを抽出する

上記の数式以外にも、ユーザー定義関数を使用してテキスト文字列からメールアドレスを取得することもできます。

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. 1つのセルに複数のメールアドレスがある場合、すべてのメールが抽出されます。


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. OKをクリックすると、選択したテキスト文字列からメールアドレスが抽出されます。スクリーンショットをご覧ください:

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. 1つのセルに複数のメールアドレスがある場合、すべてのメールが抽出されます。

3. 抽出されたメールは元のデータを上書きするので、事前にデータをバックアップすることをお勧めします。


arrow blue right bubble デモ: Kutools for Excelを使用してテキスト文字列からメールアドレスを抽出する

 
Kutools for Excel: あなたの指先に 300 以上の便利なツールが集結!永久無料のAI機能をお楽しみください!今すぐダウンロード!

関連記事:

Excelで複数のメールアドレスからドメインを抽出するにはどうすればよいですか?

最高のオフィス業務効率化ツール

🤖 Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Executionコード生成カスタム数式の作成データの分析とグラフの生成Kutools Functionsの呼び出し……
人気の機能重複の検索・ハイライト・重複をマーキング空白行を削除データを失わずに列またはセルを統合丸める……
スーパーLOOKUP複数条件でのVLookup複数値でのVLookup複数シートの検索ファジーマッチ……
高度なドロップダウンリストドロップダウンリストを素早く作成連動ドロップダウンリスト複数選択ドロップダウンリスト……
列マネージャー指定した数の列を追加列の移動非表示列の表示/非表示の切替範囲&列の比較……
注目の機能グリッドフォーカスデザインビュー強化された数式バーワークブック&ワークシートの管理オートテキスト ライブラリ日付ピッカーデータの統合セルの暗号化/復号化リストで電子メールを送信スーパーフィルター特殊フィルタ(太字/斜体/取り消し線などをフィルター)……
トップ15ツールセット12 種類テキストツールテキストの追加特定の文字を削除など)50種類以上のグラフガントチャートなど)40種類以上の便利な数式誕生日に基づいて年齢を計算するなど)19 種類の挿入ツールQRコードの挿入パスから画像の挿入など)12 種類の変換ツール単語に変換する通貨変換など)7種の統合&分割ツール高度な行のマージセルの分割など)… その他多数
Kutoolsはお好みの言語で利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語、その他40以上の言語に対応!

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 Tabs PowerPoint
  • オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
  • 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
  • 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
  • 30日間フル機能お試し —— 登録やクレジットカード不要
  • コストパフォーマンス最適 —— 個別購入よりお得