メールアドレスからユーザー名とドメイン名の部分を取得する(SEARCH,LEFT,RIGHT,LEN)
メールアドレスの形式で入力された文字列からユーザー名の部分とドメイン名の部分をそれぞれ取得する方法です。 @ の位置を取得したあと空白よりも前の部分と後の部分をそれぞれ取り出します。ここでは Excel の関数である SEARCH 関数、 LEFT 関数、 RIGHT 関数、 LEN 関数を組み合わせて、メールアドレスからユーザー名とドメイン名の部分をそれぞれ取得する方法について解説します。
(Last modified: )
メールアドレスからユーザー名とドメイン名をそれぞれ取り出す
メールアドレスの形式の文字列からユーザー名とドメイン名をそれぞれ取得する方法です。次のシートを見てください。
対象の文字列にはメールアドレスが入力されており、ユーザー名とドメイン名間は @
で区切りられています。最初にユーザー名の部分を取得するために C3 セルに次のような数式を入力しました。
=LEFT(B3, SEARCH("@",B3,1)-1)
SEARCH
関数を使って対象の文字列の中にある @
の位置を取得し、 LEFT
関数を使って対象の文字列の先頭位置から (@の位置)-1 分だけ取得します。
Enter
キーを押すと C10 セルには次のように表示されました。
次に名の部分を取得するために D3 セルに次のような数式を入力しました。
=RIGHT(B3,LEN(B3)-SEARCH("@",B3,1))
SEARCH
関数を使って対象の文字列の中にある @
の位置を取得し、 RIGHT
関数を使って対象の文字列の末尾から (文字列の文字数)-(@までの文字数) 分だけを取得します。
Enter
キーを押すと D3 セルには次のように表示されました。
C4 セルから D6 セルまで同じように数式を入力しました。
メールアドレスがが入力された文字列からユーザー名とドメイン名の部分をそれぞれ取得することができました。
解説
ユーザー名とドメイン名のどちらを取得する場合も、まず SEARCH("@",B3,1)
を使って @
の位置を取得しています。実際にどのような数値を取得しているのかは次をみてください。
またドメイン名の部分を取得するときに LEN(B3)
を使って メールアドレスの文字の長さを取得しています。実際にどのような数値を取得しているのかは次をみてください。
例えば "ken@example.net" の場合、 @
の位置は 4 文字目になります。そこでユーザー名の部分は先頭から 4-1=3 文字分を取得し、ドメイン名の部分は末尾から文字の長さである 15 から半角スペースがある 3 を引いた 15-4=11 文字分を取得すればいいことになります。
今回使用した関数の解説は下記を参照されてください。
・SEARCH関数:指定の文字が何文字目にあるかを検索する
・LEFT関数:左端から指定した文字数だけ文字列を取得する
・RIGHT関数:右端から指定した文字数だけ文字列を取得する
・LEN関数:文字数の長さ(文字数)を取得する
-- --
Excel の関数である SEARCH 関数、 LEFT 関数、 RIGHT 関数、 LEN 関数を組み合わせて、メールアドレスからユーザー名とドメイン名の部分をそれぞれ取得する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。