練習問題一覧 / 文字列

メールアドレスからドメインを取り出す(MID + FIND)

むずかしい 文字列
問題文
ヒント 0/4
模範解答 2
–
テストケース
1
2
3
リセット
提出
fx
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
インタラクティブなスプレッドシートを読み込み中...
セルと数式の計算エンジンを準備しています
○ 準備完了 ハイライトされたセルに数式を入力し、「提出」を押してください。

問題

問題文

マーケティングは会社のドメインで分類したいのですが、出力には完全なアドレスだけが A2 に残っています。@ より後ろをすべて Domain のセル C2 に取り出してください。[email protected] なら corp.com です。

@ の1つ後ろから取り始めます。ケース2 は2段階のドメイン、ケース3 はプラス付きのアドレスなので、@ の位置も長さも決め打ちできません。

問題のデータ

表でデータ全体を見る(選択・コピーできます)
この問題のデータ表
AC
1EmailDomain
2[email protected]

ポイント解説

FIND("@", A2) は @ の位置を返し、MID が求めるのは「残したい最初の文字の位置」です。だから 1 を足します。足さないと結果が @ から始まります。長さは十分に大きければよく、LEN(A2) は安全な上限です。MID は文字列の終わりで止まります。

解き方のヒント

回答は C2 に入力します。送信時は 3 通りの入力で数式を再実行するので、数値を直接書くと必ず失敗します。数式はセルを参照してください。

  1. 回答セルは C2 です
  2. FIND("@", A2) で @ が何文字目か分かります
  3. MID は指定した位置から始まるので、@ の次の位置を渡します
  4. 形は =MID(?, FIND("@", ?) + 1, ?) です

模範解答

模範解答を表示(2 通り・まずは自分で試してみましょう)

解法1:@ の直後から MID

=MID(A2,FIND("@",A2)+1,LEN(A2))

FIND が @ を見つけ、+1 で次の文字へ移り、LEN(A2) が十分な長さを与えます。MID は文字列の終わりで止まるので、ドメインの長さを仮定する必要はありません。

解法2:残りの長さで RIGHT

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

@ より後ろの長さは、全体の長さから @ の位置を引いたものです。RIGHT は反対側から読むので、前半の長さが大きく変わるときに考えやすくなります。

関数ガイド

関連する練習問題

よくある質問

特定の文字より後ろのテキストを取り出すには?

FIND でその文字を探し、MID か RIGHT で残りを取ります。=MID(A2, FIND("@", A2) + 1, LEN(A2)) は区切り文字が何であっても使えます。@ をカンマやハイフンに置き換えるだけです。

FIND("@", A2) + 1 の +1 は何のため?

FIND は @ 自身の位置を返します。MID は渡した位置から取り始めるので、+1 がないと結果が @ から始まり、`corp.com` ではなく `@corp.com` になります。

ドットで分割してはいけないのですか?

確実ではありません。ドメインのドット数は .co.uk や .com.au のように異なり、@ より前にも anna.lee@ のようにドットが入ります。確実な区切りは @ だけです。