Excel関数 逆引き集 | ドメイン抽出 → RIGHT+FIND

Excel
スポンサーリンク

概要

メールアドレスやURLの一覧から、
「@ 以降だけ」「ドメイン部分だけ」を抜き出したいシーンはよくあります。

  • yamada@example.comexample.com
  • user@test.co.jptest.co.jp
  • https://www.example.com/pagewww.example.com(考え方はほぼ同じ)

こういう「右側の“末尾部分”だけを取り出す」処理は、
RIGHT 関数 + FIND 関数 の組み合わせが定番です。

ここでは、メールアドレスを例にしながら、
ドメイン抽出の“型”を初心者向けにじっくり解説します。


基本の考え方

ドメインを抜き出すとき、いちばん分かりやすい「目印」は @(アットマーク) です。

メールアドレスは基本的に、

ユーザー名 @ ドメイン

という構造になっています。

なので、やりたいことを言葉でまとめると、

  1. FIND で「@ が何文字目にあるか」を調べる
  2. 全体の文字数から「@ までの文字数」を引いて、
    「@ より右側の文字数(=ドメインの長さ)」を求める
  3. RIGHT で、右からその文字数ぶん切り取る

という流れになります。

式にするとちょっと長く見えますが、
やっていることはこの 3 ステップだけです。


FIND 関数で「@ の位置」を知る

FIND の基本

書式はこうです。

=FIND(検索文字列, 対象文字列)

メールアドレスの中の「@」の位置を知りたいなら、こう書きます。

=FIND("@", A2)

A2 に

yamada@example.com

が入っている場合、

yamada が 6文字
7文字目が @

という感じなので、FIND("@", A2) の結果は 7 になります。

この「7」という数字を使って、

  • 左側(ユーザー名)の長さ
  • 右側(ドメイン)の長さ

を計算していきます。


LEN 関数で「全体の長さ」を知る

ドメインは「全体の長さ - @ までの長さ」で求められます。

全体の文字数を知るには LEN 関数を使います。

=LEN(A2)

A2 に yamada@example.com が入っていれば、

  • yamada(6文字)
  • @(1文字)
  • example.com(11文字)

合計 18 文字なので、LEN(A2) は 18 になります。

こうして、

  • 全体の長さ:LEN(A2)
  • @ の位置 :FIND("@", A2)

が分かれば、ドメインの長さは

LEN(A2) - FIND("@", A2)

で求められる、というわけです。

例:18 − 7 = 11 → ドメイン部分は 11 文字


RIGHT+FIND でドメインだけ取り出す基本形

ここまでの要素を組み合わせると、
ドメイン抽出の“定番の型”はこうなります。

=RIGHT(
  A2,
  LEN(A2) - FIND("@", A2)
)

1行で書くと:

=RIGHT(A2, LEN(A2) - FIND("@", A2))

動きを整理すると、

  1. FIND("@", A2)
    → 「@ が何文字目か」
  2. LEN(A2) - FIND("@", A2)
    → 「@ より右側の文字数」=「ドメインの長さ」
  3. RIGHT(A2, その文字数)
    → アドレスの右側から、その文字数だけ切り出す
    → 結果:「example.com」

A2 が user@test.co.jp の場合でも同じです。

  • FIND("@", A2)@ の位置
  • LEN(A2) → 全体の長さ
  • 差を取って、右からそのぶん切り出す → test.co.jp

URLからドメインを取りたいときの考え方

今回のテーマは「RIGHT+FIND でのドメイン抽出」なので、
応用としてURLのドメインも考え方だけ触れておきます。

例えば A2 に

Example Domain

が入っているとします。

ここから www.example.com を抜き出すには、
// の後ろから、次の / まで」など、ルールを決めてから
FIND を重ねて位置を取っていくことになります。

例のイメージ:

  • FIND("//", A2)// の位置
  • その少し後からの文字列を対象に、最初の / を探す
  • その間を MID で切り出す

メールアドレスより少し複雑になるので、
最初は「メールアドレスの @ 以降だけ抽出」のケースで
しっかり型を身につけるのが良いです。


例題

問題1

A2 に「yamada@example.com」というメールアドレスが入っています。
この中から、ドメイン部分「example.com」だけを取り出す式を書いてください。
RIGHT と FIND、LEN を使ってください。

=RIGHT(A2, LEN(A2) - FIND("@", A2))

問題2

A2 に「user@test.co.jp」というメールアドレスが入っています。
この中から「test.co.jp」だけを取り出す式を書いてください。
RIGHT+FIND の“型”をそのまま使ってください。

=RIGHT(A2, LEN(A2) - FIND("@", A2))

問題3

A2 に「tanaka.sales@company-example.co.jp」というメールアドレスが入っています。
ユーザー名やサブドメインの長さは毎回違いますが、
「@ 以降をすべてドメインとして抜き出す」式を書いてください。

=RIGHT(A2, LEN(A2) - FIND("@", A2))

問題4

A2 に「名前:山田太郎 yamada@example.com」という文字列が入っています。
まずは「右端から見てメールアドレス部分だけを取り出す」ことを考え、
「セルの一番右の 18 文字」を抜き出す式を書いてください。
(メールが常に 18 文字だと仮定します)

=RIGHT(A2, 18)

(※実務では長さが変わるので、@の位置から計算する方法に発展させます)


問題5

A2 に「abc@x.example.com」というメールアドレスが入っています。
この中から「x.example.com」を取り出したいです。
RIGHT と FIND、LEN を組み合わせた式を書いてください。

=RIGHT(A2, LEN(A2) - FIND("@", A2))

ドメイン抽出の本質は、この一行に集約されます。

=RIGHT(A2, LEN(A2) - FIND("@", A2))

「@ の位置を FIND で押さえ、そこから右側を RIGHT でまとめて抜く」
この型を体で覚えておくと、メールアドレスだけでなく、
他の “区切り文字の右側だけ欲しい” 場面にもどんどん応用できるようになります。

Excel
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました