エクセルで大量のメールアドレスを扱うとき、「@の前のユーザー名だけを取り出したい」と思ったことはありませんか?
たとえば、
- 顧客リストからユーザー名だけを抽出したい
- ログインIDや社内アカウントを整理したい
- 「@」以降のドメイン部分を削除したい
そんなときに便利なのが、Excelの「FIND関数」と「LEFT関数」を組み合わせる方法です。
この記事では、FIND関数とLEFT関数を使ってメールアドレスからユーザー名を取り出す方法を、初心者にも分かりやすく紹介します。あわせて、Excel 365やExcel 2024などで使えるTEXTBEFORE関数を使った簡単な方法、エラーが出たときの対処法も整理します。
「@」の位置を特定して、前の文字列を取り出す
なお、メールアドレスに使われる「@」は半角です。全角の「@」を式に入れると、正しく検索できない場合があります。この記事では、数式内の「@」は半角で入力してください。
まず、メールアドレス内の「@」が何文字目にあるかを調べます。
ここで使うのが FIND関数 です。

FIND関数で、「@」の位置を求める
FIND(検索文字列, 対象文字列)
たとえば、セルA3に「ichiro_sato@gmail.com」と入力されている場合、
次の式を入力します。
=FIND(“@”,A3)
「検索文字列」には「@」、「対象文字列」にはセルA3を指定します。
この式は、A3の中で「@」が何文字目にあるかを数値で返します。
結果が「12」であれば、「@」は12文字目にあるという意味です。
LEFT関数で対象の文字を取り出す
「@」の前の文字列だけを取り出すには LEFT関数を使います。
LEFT(文字列, 文字数)
FIND関数で「@」の位置を求めたら、LEFT関数で左端から「@」の1つ前までの文字を取り出します。-1 をすることで「@」の前までの文字列だけを抽出。
結果として、メールアドレスのユーザー名部分だけが取り出せます。
=LEFT(A3,FIND(“@”,A3)-1)
この式では、「A3の左端から、@の1つ前までの文字」を取り出します。
FIND関数で求めた「@の位置」から「-1」しているのは、@自体を除外するためです。
結果として、「ichiro_sato@gmail.com」から「ichiro_sato」だけを抽出できます。
Excel 365やExcel 2024ならTEXTBEFORE関数でも抽出できる
Excel 365やExcel 2024などを使っている場合は、TEXTBEFORE関数を使う方法もあります。
TEXTBEFORE関数は、指定した文字より前にある文字列を取り出す関数です。メールアドレスから「@」より前のユーザー名だけを取り出したい場合は、次の式で抽出できます。
=TEXTBEFORE(A3,”@”)
たとえば、セルA3に「ichiro_sato@gmail.com」と入力されている場合、この式を使うと「ichiro_sato」だけを取り出せます。
FIND関数とLEFT関数を組み合わせる方法に比べて、式が短く分かりやすいのがメリットです。
ただし、TEXTBEFORE関数はすべてのExcelで使えるわけではありません。古いExcelを使っている場合は、この記事で紹介しているFIND関数とLEFT関数を組み合わせる方法を使うと安心です。
複数のメールアドレスでも応用可能
この式を下のセルにコピーすれば、複数のメールアドレスから一括でユーザー名だけを抽出できます。
顧客名簿や会員データなど、大量のリスト整理にも使える便利な方法です。さらに、関数を別シートで活用すれば、元データを壊さずに安全に処理できます。
メールアドレスの整理や顧客リストの加工は、Excel関数を覚えると作業時間を大きく減らせます。
特に、FIND関数・LEFT関数・MID関数のような文字列操作は、名簿管理、会員データ整理、社内資料の作成などでよく使います。
「関数をその場しのぎで調べるだけでなく、Excelの基本からまとめて覚えたい」という場合は、オンライン講座で体系的に学ぶ方法もあります。
応用:ドメイン名(@以降)を取り出す方法
逆に「@」の後ろのドメイン部分だけを取りたい場合は、MID関数を使います。
=MID(A3,FIND(“@”,A3)+1,LEN(A3))
この式では、「@」の直後から文字列の末尾までを取り出します。
たとえば「ichiro_sato@gmail.com」から「gmail.com」が抽出できます。
ユーザー名とドメインを分けることで、
「どのメールサービスを使っている人が多いか」などの分析にも活用できます。
よくあるエラーと対処法
1. 「@が見つかりません」エラー(#VALUE!)
メールアドレスに「@」が含まれていない場合、このエラーが出ます。
=IFERROR(LEFT(A3,FIND(“@”,A3)-1),”@なし”)
これで、「@」がないセルには「@なし」と表示されます。
2. 空白の混入による抽出ミス
コピペしたデータに空白が含まれていると、正しく抽出できないことがあります。
➡ その場合は TRIM関数で空白を削除してから処理します。
=LEFT(TRIM(A3),FIND(“@”,TRIM(A3))-1)
まとめ
| 目的 | 使用関数 | 式の例 |
|---|---|---|
| ユーザー名を抽出 | FIND+LEFT | =LEFT(A3,FIND(“@”,A3)-1) |
| ユーザー名を簡単に抽出 | TEXTBEFORE | =TEXTBEFORE(A3,”@”) |
| ドメインを抽出 | FIND+MID | =MID(A3,FIND(“@”,A3)+1,LEN(A3)) |
| エラー回避付き | IFERROR+LEFT | =IFERROR(LEFT(A3,FIND(“@”,A3)-1),”@なし”) |
| 空白対策付き | TRIM+FIND+LEFT | =LEFT(TRIM(A3),FIND(“@”,TRIM(A3))-1) |
Excel関数を使えば、メールアドレスからユーザー名やドメインを簡単に取り出せます。
基本は、FIND関数で「@」の位置を調べ、LEFT関数でその前の文字列を取り出す方法です。Excel 365やExcel 2024などを使っている場合は、TEXTBEFORE関数を使うと、より短い式で同じ処理ができます。
顧客リストや会員データ、社内アカウント一覧を整理するときに役立つので、メールアドレスを扱う機会が多い方は覚えておくと便利です。


コメント