メールアドレスからユーザー名とドメイン名の部分を取得する(SEARCH,LEFT,RIGHT,LEN)

メールアドレスの形式で入力された文字列からユーザー名の部分とドメイン名の部分をそれぞれ取得する方法です。 @ の位置を取得したあと空白よりも前の部分と後の部分をそれぞれ取り出します。ここでは Excel の関数である SEARCH 関数、 LEFT 関数、 RIGHT 関数、 LEN 関数を組み合わせて、メールアドレスからユーザー名とドメイン名の部分をそれぞれ取得する方法について解説します。

(Last modified: )

メールアドレスからユーザー名とドメイン名をそれぞれ取り出す

メールアドレスの形式の文字列からユーザー名とドメイン名をそれぞれ取得する方法です。次のシートを見てください。

メールアドレスからユーザー名とドメイン名をそれぞれ取り出す(1)

対象の文字列にはメールアドレスが入力されており、ユーザー名とドメイン名間は @ で区切りられています。最初にユーザー名の部分を取得するために C3 セルに次のような数式を入力しました。

=LEFT(B3, SEARCH("@",B3,1)-1)

メールアドレスからユーザー名とドメイン名をそれぞれ取り出す(2)

SEARCH 関数を使って対象の文字列の中にある @ の位置を取得し、 LEFT 関数を使って対象の文字列の先頭位置から (@の位置)-1 分だけ取得します。

Enter キーを押すと C10 セルには次のように表示されました。

メールアドレスからユーザー名とドメイン名をそれぞれ取り出す(3)

次に名の部分を取得するために D3 セルに次のような数式を入力しました。

=RIGHT(B3,LEN(B3)-SEARCH("@",B3,1))

メールアドレスからユーザー名とドメイン名をそれぞれ取り出す(4)

SEARCH 関数を使って対象の文字列の中にある @ の位置を取得し、 RIGHT 関数を使って対象の文字列の末尾から (文字列の文字数)-(@までの文字数) 分だけを取得します。

Enter キーを押すと D3 セルには次のように表示されました。

メールアドレスからユーザー名とドメイン名をそれぞれ取り出す(5)

C4 セルから D6 セルまで同じように数式を入力しました。

メールアドレスからユーザー名とドメイン名をそれぞれ取り出す(6)

メールアドレスがが入力された文字列からユーザー名とドメイン名の部分をそれぞれ取得することができました。

解説

ユーザー名とドメイン名のどちらを取得する場合も、まず SEARCH("@",B3,1) を使って @ の位置を取得しています。実際にどのような数値を取得しているのかは次をみてください。

メールアドレスからユーザー名とドメイン名をそれぞれ取り出す(7)

メールアドレスからユーザー名とドメイン名をそれぞれ取り出す(8)

またドメイン名の部分を取得するときに LEN(B3) を使って メールアドレスの文字の長さを取得しています。実際にどのような数値を取得しているのかは次をみてください。

メールアドレスからユーザー名とドメイン名をそれぞれ取り出す(9)

メールアドレスからユーザー名とドメイン名をそれぞれ取り出す(10)

例えば "ken@example.net" の場合、 @ の位置は 4 文字目になります。そこでユーザー名の部分は先頭から 4-1=3 文字分を取得し、ドメイン名の部分は末尾から文字の長さである 15 から半角スペースがある 3 を引いた 15-4=11 文字分を取得すればいいことになります。

メールアドレスからユーザー名とドメイン名をそれぞれ取り出す(11)

今回使用した関数の解説は下記を参照されてください。

-- --

Excel の関数である SEARCH 関数、 LEFT 関数、 RIGHT 関数、 LEN 関数を組み合わせて、メールアドレスからユーザー名とドメイン名の部分をそれぞれ取得する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。