KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel でテキスト文字列から連絡先情報(電話番号、メールアドレス)を抽出

著者Xiaoyang変更日

Excel で連絡先データを扱う際、氏名や住所などの詳細に加え、電話番号とメールアドレスが同じセルに混在していることがよくあります。これは、メールや Web サイトからデータをコピーしたり、外部ソースからインポートしたりした際に特に起こりやすい現象です。

Excel で電話番号とメールアドレスを抽出する必要がある場合、手動での作業は時間もかかりミスも起こりやすくなります。特に大規模なデータセットやフォーマットが一貫していないデータを扱う際には、その傾向がさらに顕著です。このステップバイステップガイドでは、Excel の1 つのセルから電話番号とメールアドレスを素早く抽出する方法をご紹介します。これらの手法を使えば、データをより効率的にクリーンアップし、整理・構造化することが可能になります。

電話番号とメールアドレスを抽出

Excel で連絡先情報(電話番号、メールアドレス)を抽出

拡張的な活用方法

まとめ


Excel で連絡先情報(電話番号、メールアドレス)を抽出

このセクションでは、それを実現するための3 つの実用的な方法をご紹介します。Excel 365 で数式を使う方法、すべてのExcel バージョンで動作するユーザー定義関数(UDF)を使う方法、そしてより高速で柔軟なソリューションとして KUTOOLS AI を活用する方法です。

 

数式による連絡先情報(電話番号、メールアドレス)の抽出(Excel 365)

Excel 365 は動的配列関数をサポートしており、テキストからパターンを抽出するのが格段に簡単になります。お使いのExcel バージョンで TEXTJOIN や REGEXEXTRACT などの関数が利用可能な場合は、数式を使って電話番号やメールアドレスを直接抽出できます。

電話番号の抽出

次の数式を使えば、電話番号を別の列に取り出して、ソースデータが変更されるたびに結果を自動的に更新できます。

  1. 抽出した電話番号を表示したい空白セルを選択し、次の数式をコピー&ペーストします:
    =TEXTJOIN(", ",TRUE,REGEXEXTRACT(A2,"\(?\d{3}\)?[-\s]?\d{3}[-\s]?\d{4}",1))
  2. Enterキーを押してください。必要に応じてフィルハンドルを下にドラッグして、他のセルにも数式を適用できます。複数の電話番号が見つかった場合は、カンマ区切りで1 つのセルに返されます。スクリーンショットを参照してください:
    数式で電話番号を抽出
数式の仕組み
  • REGEXEXTRACT(A2,「\(?\d{3}\)?[-\s]?\d{3}[-\s]?\d{4}」,1):
    • \(?\d{3}\)?:3 桁の数字に一致します。この数字は括弧で囲まれている場合もあれば(例:(555))、囲まれていない場合もあります(例:555)。
    • [-\s]?:ハイフン「-」やスペースなどのオプションの区切り文字にマッチします。
    • \d{3}:次の3 桁の数字に一致します。
    • \d{4}:末尾の4 桁の数字に一致します。
    • 1:この引数を使うと、Excel はセル内で見つかったすべての一致結果を返します(最初の1 件だけではありません)。
  • TEXTJOIN(", ",TRUE,...)
    セルに複数の電話番号が含まれている場合、TEXTJOIN 関数で抽出されたすべての結果が、カンマ区切りで1 つのセルにまとめて結合されます。
メリット:
  • ソースが変更されると自動的に更新される動的な結果
  • 標準的な電話番号形式に便利
  • 1 つのセルから複数の電話番号を抽出可能
制限事項:
  • Excel 365 で最も効果的に動作
  • 主に標準的な米国スタイルの電話番号に適しています
  • 国際的な形式にはうまく対応できない場合があります

電子メールアドレスを抽出する

Excel 365 をご利用なら、数式はメールアドレスのパターンを素早く動的に特定し、自動で抽出するのに最適な手段です。

  1. 抽出した電子メールアドレスを抽出するを表示したい空白セルをクリックし、次の数式を入力します:
    =TEXTJOIN(", ",TRUE,REGEXEXTRACT(A2,"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}",1))
  2. Enterキーを押してください。必要に応じてフィルハンドルを下にドラッグして、他のセルにも同じ数式を適用できます。複数のメールアドレスが見つかった場合は、カンマ区切りで1 つのセルに表示されます。スクリーンショットをご参照ください:
    数式でメールアドレスを抽出
数式の仕組み
  • REGEXEXTRACT(A2,「[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}」,1):
    • [A-Za-z0-9._%+-]+:@記号より前のユーザー名部分(英数字とドット・プラスなどの記号)に一致します。
    • @:メールアドレス内の「@」記号に一致します。
    • [A-Za-z0-9.-]+:ドメイン名(例:gmail や outlook など)に一致します。
    • \.[A-Za-z]{2,}:ドメインの拡張子(例:.com、.org、.edu など)に一致します。これは、ドットの後にアルファベットが少なくとも2 文字以上続くことを保証します。
    • 1(最後の引数):この引数を指定すると、Excel はセル内で見つかったすべての一致結果を返します。指定しない場合は、最初に見つかったメールアドレスのみが取得されます。
  • TEXTJOIN(", ",TRUE,...):複数のメールアドレスが見つかった場合、すべてのメールアドレスを抽出し、1 つのセルにカンマ区切りで結合します。
メリット:
  • ソーステキストが変更されると動的に動作
  • 1 つのセルから複数のメールアドレスを抽出可能
制限事項:
  • Excel 365 または正規表現関連の関数をサポートするバージョンが必要です
  • 一般的でないメールアドレス形式を完全にキャプチャできない場合があります
  • 複雑なテキスト文字列の場合は手動での確認が必要な場合があります
  • 大規模で複雑なワークシートでは、数式ベースの抽出が管理しにくくなることがあります
 

ユーザー定義関数による連絡先情報(電話番号、メールアドレス)の抽出

上記の数式がお使いのExcel バージョンでご利用いただけない場合は、ユーザー定義関数(UDF)が連絡先情報を抽出するための効果的な代替手段となります。

  1. Alt + F11を押して、VBA エディターを開きましょう。
  2. 次に、挿入モジュールをクリックし、次のコードを貼り付けます:
    Function ExtractContactInfo(txt As String, infoType As String) As String
        Dim reg As Object
        Dim matches As Object
        Dim m As Object
        Dim result As String
        Dim pattern As String
        Set reg = CreateObject("VBScript.RegExp")
        reg.Global = True
        reg.IgnoreCase = True
        Select Case LCase(infoType)
            Case "phone"
                pattern = "\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}"
            Case "email"
                pattern = "[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}"
            Case Else
                ExtractContactInfo = "Invalid type"
                Exit Function
        End Select
        reg.pattern = pattern
        If reg.Test(txt) Then
            Set matches = reg.Execute(txt)
            For Each m In matches
                result = result & m.Value & ", "
            Next m
            result = Left(result, Len(result) - 2)
        End If
        ExtractContactInfo = result
    End Function
  3. エディターを閉じてワークシートに戻り、空白セルに次の数式を入力してください:
    • 電話番号を抽出:=ExtractContactInfo(A2,"phone")
    • 電子メールアドレスを抽出する:=ExtractContactInfo(A2,"email")
  4. その後、数式を下にドラッグすれば、リスト内のすべての電話番号とメールアドレスを一括で抽出できます。
    VBA で電話番号とメールアドレスを抽出
メリット:
  • ほぼすべてのExcel バージョンで動作
  • 長いワークシート数式よりも再利用しやすいです。
  • 繰り返しのタスクや大規模データセットに最適です。
制限事項:
  • VBA の知識が必要です。
  • マクロはデフォルトで無効になっていることがあります。
  • 一部の組織では、セキュリティ上の理由から VBA がブロックされています。
  • VBA エディターに慣れていないユーザーには向いていません。
  • ファイルは通常、マクロ有効ブック(。xlsm)形式で保存する必要があります。
 

KUTOOLS AI による連絡先情報(電話番号、メールアドレス)の抽出

数式や VBA コードを使わずに電話番号やメールアドレスをセルから簡単に抽出したい場合は、KUTOOLS AI の Cells Aideがさらに簡単な方法をご提供します。

KUTOOLS AI を使えば、電話番号やメールアドレスにとどまらず、名前やその他のさまざまな情報をも簡単に抽出できます。抽出したい内容をプロンプトで指定するだけで、選択したセルから必要なほぼすべての情報を瞬時に取得可能です。

Kutools for Excelは複雑なタスクを効率化する300 以上の高度な機能を提供し、創造性と作業効率を高めます。AI 機能と統合されたKutools は、正確にタスクを自動化し、データ管理を簡単に行えるようにします。Kutools for Excel の詳細情報。。。         無料トライアル。。。
  1. KutoolsKUTOOLS AICells Aideをクリックしてください(スクリーンショット参照)。
    Kutools の「セルの補助」をクリック
  2. Cells AI オールインワンアシストダイアログボックスで、以下のオプションを指定します:
    1. ソース範囲の範囲ボックスで、処理したいテキスト文字列を含むセルを選択してください。
    2. プロンプトライブラリドロップダウンをクリックして、事前定義されたプロンプト「連絡先情報の抽出」を選択してください。
    3. プロンプト内容ボックスで、必要に応じてプロンプトを確認または編集してください。例:
      セルのテキストから氏名、電話番号、メールアドレスを抽出してください。複数の電話番号やメールアドレスが見つかった場合は、1つのセルにカンマ区切りで返してください。一致するものが見つからない場合は、空欄を返してください。
    4. 生成ボタンをクリックすると、KUTOOLS AI が選択されたデータを分析し、抽出した日付を右側の結果パネルに表示します。
      ダイアログボックスでオプションを指定
  3. 結果を取得後、範囲に挿入ボタンをクリックして、抽出情報を配置する空白セルを選択します。最後に、OKをクリックしてください。
    結果を配置するセルを選択

結果:名前、電話番号、メールアドレスなど、指定されたすべての連絡先情報が個別のセルにきれいに抽出され、すぐに確認・活用できます。
Kutools で連絡先情報を抽出

メリット:
  • 数式を覚える必要もなければ、VBA を書く必要もありません。
  • 電話番号形式は、米国およびその他の国に対応しています。
  • 初心者でもかんたんに使えます。
  • より自然で非構造化されたテキストにもしっかり対応できます。
  • 大量のデータを処理する際の保存時間。
制限事項:
  • Kutools のインストールが必要です。
  • AI 構成(API キーなど)が必要となる場合があります。
  • プロンプトやテキストの複雑さによって、結果がやや異なる場合があります。

KUTOOLS AI で連絡先情報をより迅速に抽出

簡単なプロンプトを入力するだけで、Excel の乱雑なセルから氏名、電話番号、メールアドレス、その他の詳細を即座に抽出可能。数式も VBA も不要。必要なことを記述するだけで、Cells Aide が残りすべてを自動で処理します。

  • 名前、電話番号、メールアドレスなどを抽出
  • 構造化テキストと非構造化テキストの両方を簡単に処理
  • 米国および国際的な電話番号形式に対応
  • 大量のデータを処理する際に保存時間

拡張的な活用方法

テキスト文字列から電話番号やメールアドレスを抽出した後でも、実際の業務で使いやすくするには、さらに結果を整理する必要がある場合があります。多くのケースでは、単に1 つのセルから連絡先情報を取り出すだけでは不十分です。複数の連絡先を個別のセルに分けて分析しやすくしたり、抽出結果を一貫した形式に標準化して、よりクリーンでプロフェッショナルなワークシートを作成したいこともあるでしょう。

 

複数の連絡先を個別のセルに抽出

場合によっては、1 つのセルに複数の電話番号やメールアドレスが含まれていることがあります。このような場合、すべての結果を1 つのセルにまとめてしまうと、後でデータを並べ替えたり、フィルターやインポート、分析を行ったりする際に実用的ではありません。

以下の数式が役立つかもしれません:

電話番号を個別のセルに抽出:

=REGEXEXTRACT(A2,"\(?\d{3}\)?[-\s]?\d{3}[-\s]?\d{4}",1)

電話番号を別々のセルに抽出

電子メールアドレスを抽出するを個別のセルに抽出:

=REGEXEXTRACT(A2,"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}",1)

メールアドレスを別々のセルに抽出

 

電話番号の書式を標準化

上記の数式は、電話番号を元の形式のまま抽出します。結果をよりクリーンで一貫性のあるものにするには、次のような数式を使って、(555) 123-4567 といった標準形式にさらに整形できます。

=LET(
nums,REGEXEXTRACT(A2,"\(?\d{3}\)?[-\s]?\d{3}[-\s]?\d{4}",1),
TEXTJOIN(", ",TRUE,
MAP(nums,LAMBDA(x,
LET(
d,TEXTJOIN("",TRUE,IFERROR(MID(x,SEQUENCE(LEN(x)),1)*1,"")),
"("&LEFT(d,3)&") "&MID(d,4,3)&"-"&RIGHT(d,4)
)
))
)
)

電話番号の標準化

📌 KUTOOLS AI を使用する際は、プロンプトに希望する指示を直接追加するだけで、目的の形式で結果を得られます。

まとめ

結論として、Excel でテキスト文字列から電話番号やメールアドレスを抽出すれば、データの明確性と使いやすさが大幅に向上します。Excel 365 の数式、幅広い互換性を備えたユーザー定義関数、あるいはより高速で柔軟な操作を実現する KUTOOLS AI の Cells Aide——いずれを選んでも、非構造化された連絡先テキストを整理された情報へと効果的に変換できます。

各方法にはそれぞれ長所と制限があります。以下の比較表を参考にすれば、お使いのExcel バージョンやスキルレベル、データ抽出のニーズに最も適した方法を素早く選べます。

方法メリットデメリット
数式
(Excel 365)
✅ VBA 不要
✅ 動的で下方向へのコピーが簡単
✅ 標準的な抽出タスクに最適
❌ 新しいExcel バージョンでのみ利用可能
❌ 数式が分かりにくい場合がある
❌ 不規則なデータにはあまり柔軟に対応できない
ユーザー定義関数✅ すべてのExcel デスクトップ版で動作
✅ 再利用可能でカスタマイズ可能
✅ 繰り返しのタスクに適している
❌ VBA が必要
❌ マクロ有効ブックが必要
❌ 初心者にはあまり親しみにくい
KUTOOLS AI の Cells Aide✅ 数式や VBA が不要
✅ 初心者でも簡単に使用可能
✅ 整理されていないテキストや不規則なテキストにも対応
✅ 電話番号やメールアドレス以外にも多くの情報を抽出可能
❌ Kutools のインストールが必要
❌ 一部のケースでは結果の確認が必要な場合がある
❌ プロンプトの品質に依存