エクセルで大量のメールアドレスを扱うとき、「@の前のユーザー名だけを取り出したい」と思ったことはありませんか?
たとえば、
- 顧客リストからユーザー名だけを抽出したい
- ログインIDや社内アカウントを整理したい
- 「@」以降のドメイン部分を削除したい
そんなときに便利なのが、Excelの「FIND関数」と「LEFT関数」を組み合わせる方法です。
この記事では、初心者でもすぐ使える具体的な手順と、作業を効率化するコツをわかりやすく解説します。
「@」の位置を特定して、前の文字列を取り出す
まず、メールアドレス内の「@」が何文字目にあるかを調べます。
ここで使うのが FIND関数 です。

FIND関数で、「@」の位置を求める
FIND(検索文字列, 対象文字列)
たとえば、セルA3に「ichiro_sato@gmail.com」と入力されている場合、
次の式を入力します。
FIND(“@”,A3)
「検索文字列」=「@」を「対象」=「セルA3」の文字列の左端の「開始位置」から検索し最初に現れる位置を数値で求めます。
この式は、「A3の中で@が何文字目にあるか」を数値で返します。
結果が「12」であれば、@は12文字目にあるという意味です。
LEFT関数で対象の文字を取り出す
「@」の前の文字列だけを取り出すには LEFT関数 を使います。
LEFT(文字列, 文字数)
FIND関数で「@」文字位置を求めたら、左端から「@」の1つ前までの文字を取り出します。-1 をすることで「@」の前までの文字列だけを抽出。
結果として、メールアドレスのユーザー名部分だけが取り出せます。
=LEFT(A3,FIND(“@”,A3)-1)
この式では、「A3の左端から、@の1つ前までの文字」を取り出します。
FIND関数で求めた「@の位置」から「-1」しているのは、@自体を除外するためです。
結果として、「ichiro_sato@gmail.com」から「ichiro_sato」だけを抽出できます。
複数のメールアドレスでも応用可能
この式を下のセルにコピーすれば、複数のメールアドレスから一括でユーザー名だけを抽出できます。
顧客名簿や会員データなど、大量のリスト整理にも使える便利なテクニックです。
さらに、関数を別シートで活用すれば、元データを壊さずに安全に処理できます。
「抽出列」として使えば、後から分析や並べ替えもしやすくなります。
データベースやリストの整理にも便利で、業務効率が大幅にアップします
応用:ドメイン名(@以降)を取り出す方法
逆に「@の後ろのドメイン部分だけを取りたい」場合は、MID関数を使います。
=MID(A3,FIND(“@”,A3)+1,LEN(A3))
この式では、@の直後から文字列の末尾までを取り出します。
たとえば「ichiro_sato@gmail.com」から「gmail.com」が抽出できます。
ユーザー名とドメインを分けることで、
「どのメールサービスを使っている人が多いか」などの分析にも活用できます。
よくあるエラーと対処法
1. 「@が見つかりません」エラー(#VALUE!)
メールアドレスに@が含まれていない場合、このエラーが出ます。
➡ IFERROR関数で回避するのがおすすめです。
=IFERROR(LEFT(A3,FIND(“@”,A3)-1),”@なし”)
これで、@がないセルには「@なし」と表示されます。
2. 空白の混入による抽出ミス
コピペしたデータに空白が含まれていると、正しく抽出できないことがあります。
➡ その場合は TRIM関数で空白を削除してから処理します。
=LEFT(TRIM(A3),FIND(“@”,TRIM(A3))-1)
まとめ
| 目的 | 使用関数 | 式の例 |
|---|---|---|
| ユーザー名を抽出 | FIND+LEFT | =LEFT(A3,FIND(“@”,A3)-1) |
| ドメインを抽出 | FIND+MID | =MID(A3,FIND(“@”,A3)+1,LEN(A3)) |
| エラー回避付き | IFERROR+LEFT | =IFERROR(LEFT(A3,FIND(“@”,A3)-1),”@なし”) |
エクセル関数を使えば、メールアドレスの分解や整理が驚くほど簡単にできます。
特に顧客データや会員リストを扱う場面では、知っておくと作業効率が格段に上がります。


コメント