Googleスプレッドシートでメールアドレスの文字列を「@」の前後に、つまりユーザー名とドメインに分割して取得する方法です。
- SPLIT関数を使ってメールアドレスをユーザー名とドメインに分割することができます。
- REGEXEXTRACT関数を使う方法もあります。
手順
1つの式だけで分割する場合
B3セルとB4セルにメールアドレスが記録されています。
これらをそれぞれ別の関数を使って分割するものとします。
C3セルとC4セルにそれぞれ次のような式を入力します。
C3,C4セル
=SPLIT(B3,"@") =REGEXEXTRACT(B4,"(.+)@(.+)")
SPLIT関数の方は、「@」を区切り文字列としてメールアドレスを分割するものです。
REGEXEXTRACT関数の方は少し長いですが、この関数でも文字列を複数に分割できます。2か所ある「.+」は「@」の前後にある1文字以上の文字列を表しますが、それぞれカッコで囲むことで「@」を抽出の対象から除外するとともに、ユーザー名とドメインを別々に抽出することができます。
結果はこうなります。
ユーザー名とドメインをそれぞれ別の式で抽出する場合
サンプルは上記の例と同じですが、ここではユーザー名とドメインをそれぞれ別の式で抽出します。
どちらか一方だけ必要な場合に対応するための例です。
C3,D3,C4,D4セル
=INDEX(SPLIT(B3,"@"),1) =INDEX(SPLIT(B3,"@"),2) =REGEXEXTRACT(B4,"(.+)@") =REGEXEXTRACT(B4,"@(.+)")
C3,D3セルでは、SPLIT関数でアドレスを分割し、さらにINDEX関数を使って一方を抽出しています。第2引数を1にすればユーザー名を、2にすればドメインを抽出できます。
D3,D4セルではやはりREGEXEXTRACT関数を用いています。第2引数を「(.+)@」とすることで「@」の前にあるユーザー名を、「@(.+)」とすることで「@」の後にあるドメインを抽出できます。
結果はこうなります。
出力としては最初の例と全く同じです。