Excelで特定の文字から特定の文字までを抽出する方法|TEXTBEFORE・TEXTAFTER・MID

結論(先に答え)

Microsoft 365なら =TEXTBEFORE(TEXTAFTER(A2, "【"), "】") で「【」から「】」までの中身を抽出できます。どのバージョンでも使える方法は =MID(A2, FIND("【",A2)+1, FIND("】",A2)-FIND("【",A2)-1) です。

「ノートPC【A-101】ブラック」のような文字列から、2つの目印文字に挟まれた部分だけ(この例では A-101)を取り出したい——型番・コード・カッコ内の抽出で頻出の処理です。この記事では、新関数のTEXTBEFORE&TEXTAFTER方式と、旧バージョンでも動くMID&FIND方式の両方を解説します。

Excelで特定の文字から特定の文字まで(【】の中身)を抽出する図解
目次

サンプルデータ

AB
1商品表記コード
2ノートPC【A-101】ブラック(ここに数式)
3マウス【B-220】無線
4キーボード【C-330】日本語配列

練習用のExcelファイルはこちらからダウンロードできます:
Excel-extract-between-text-1.xlsx(ダウンロード)

方法1:TEXTAFTER+TEXTBEFORE(Microsoft 365)

=TEXTBEFORE(TEXTAFTER(A2, "【"), "】") → A-101

内側の TEXTAFTER(A2, "【") がまず「【」より後ろ(A-101】ブラック)を取り出し、外側の TEXTBEFORE(…, "】") がそこから「】」より前(A-101)を取り出します。「後ろを取ってから、前を取る」という2段階です。

方法2:MID+FIND(全バージョン対応)

=MID(A2, FIND("【",A2)+1, FIND("】",A2)-FIND("【",A2)-1) → A-101

FINDで「【」と「】」の位置を調べ、MIDで開始位置=【の次から、長さ=】の位置−【の位置−1だけ取り出しています。TEXTAFTER/TEXTBEFOREが使えないExcel 2019以前ではこちらを使ってください。

応用:同じ文字が複数あるとき

目印の文字が複数回登場する場合、TEXTAFTER・TEXTBEFOREの第3引数で「何個目か」を指定できます。例えば =TEXTAFTER(A2, "-", 2) は2個目の「-」より後ろを返します。末尾から数えるときは -1(最後の区切り)が便利です。

まとめ

やりたいこと数式
【】の中身を抽出(365)=TEXTBEFORE(TEXTAFTER(A2,”【”),”】”)
【】の中身を抽出(全バージョン)=MID(A2, FIND(“【”,A2)+1, FIND(“】”,A2)-FIND(“【”,A2)-1)
特定の文字より後ろすべて=TEXTAFTER(A2,”文字”)
特定の文字より前すべて=TEXTBEFORE(A2,”文字”)

こんな場合はこちら:特定の文字より後ろ(以降)を抽出するTEXTBEFORE・TEXTAFTER関数の基本

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次