概要
文字列の中で「指定した文字以降の部分」を取り出したいときに使えるのが、=MID(A1,FIND("-",A1)+1,…) という組み合わせです。
ここでは「-(ハイフン)」を例にしていますが、任意の文字に置き換えれば同じ仕組みで利用できます。FIND関数で指定文字の位置を調べ、その直後からMID関数で文字列を切り出すのがポイントです。
基本の使い方
書式
=MID(対象文字列, FIND(検索文字, 対象文字列)+1, 文字数)
- FINDで検索文字の位置を取得
- +1することで「指定文字の直後」から開始
- MIDで指定した文字数分を切り出す
例
=MID("ABC-123",FIND("-", "ABC-123")+1,3)
// 結果: "123"
具体例
商品コードから番号部分を抽出
=MID(A2,FIND("-",A2)+1,LEN(A2))
「ABC-123」というコードから「123」を取り出せます。
氏名をスペースで区切って名だけ抽出
=MID(B2,FIND(" ",B2)+1,LEN(B2))
「山田 太郎」から「太郎」を抽出。
メールアドレスからドメイン部分を抽出
=MID(C2,FIND("@",C2)+1,LEN(C2))
「user@example.com」から「example.com」を取り出せます。
応用テンプレート
LENを組み合わせて残り全部を抽出
=MID(D2,FIND("-",D2)+1,LEN(D2))
指定文字以降をすべて取り出す。
複数の区切り文字に対応
=IFERROR(MID(E2,FIND("-",E2)+1,LEN(E2)),MID(E2,FIND("_",E2)+1,LEN(E2)))
「-」がなければ「_」以降を抽出。
TRIMと組み合わせて余分なスペースを削除
=TRIM(MID(F2,FIND(" ",F2)+1,LEN(F2)))
名を抽出した後に余分なスペースを取り除きます。
よくあるつまずきと対策
指定文字が見つからないとエラーになる
FINDは検索文字が存在しないと#VALUE!エラーになります。IFERRORで補うと安心です。
全角と半角の違い
「-」と「-」は別文字です。入力データの全角半角を統一してから使いましょう。
複数回出現する場合
FINDは最初に見つかった位置を返します。2回目以降を対象にしたい場合は開始位置を指定します。
例題
問題1: A2セルの文字列「ABC-123」から「-」以降の文字列をB2に表示してください。
解答例:
=MID(A2,FIND("-",A2)+1,LEN(A2))
問題2: C2セルの氏名「山田 太郎」からスペース以降の文字列をD2に表示してください。
解答例:
=MID(C2,FIND(" ",C2)+1,LEN(C2))
問題3: E2セルのメールアドレスから「@」以降の文字列をF2に表示してください。
解答例:
=MID(E2,FIND("@",E2)+1,LEN(E2))
問題4: G2セルの文字列に「-」がなければ文字列全体をH2に表示してください。
解答例:
=IFERROR(MID(G2,FIND("-",G2)+1,LEN(G2)),G2)
問題5: I2セルの文字列からスペース以降の文字列を抽出し、余分なスペースを削除してJ2に表示してください。
解答例:
=TRIM(MID(I2,FIND(" ",I2)+1,LEN(I2)))
まとめ
MIDとFINDを組み合わせることで「指定文字以降の部分」を簡単に抽出できます。
- FINDで位置を調べる
- +1で直後から開始
- LENを使えば残り全部を取り出せる
講師として強調したいのは「LEFTは指定文字以前、MIDは指定文字以降」。この違いを理解すれば、Excelでの文字列処理が自在にできるようになります。
