365・LibreOfficeなどに関するメモ2020-09-06(Gスプレッドシート)メールアドレスを@の前後に分割するGoogleスプレッドシート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引数を「(.+)@」とすることで「@」の前にあるユーザー名を、「@(.+)」とすることで「@」の後にあるドメインを抽出できます。出力としては最初の例と全く同じです。365はデスクトップ版、LibreOfficeは記事作成時の安定バージョンを用いた結果を示しています。サイトポリシー等についてはこちらをご覧ください。(1)検索スポンサーリンク引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。