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方式の両方を解説します。

サンプルデータ
| A | B | |
|---|---|---|
| 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関数の基本

コメント