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】日本語配列 |
まず動かしてみよう|この記事のサンプルをその場で試せます
練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。
方法1:TEXTAFTER+TEXTBEFORE(Microsoft 365)
手順:B2 に TEXTBEFORE と TEXTAFTER の式を入れて Enter
「ノートPC【A-101】ブラック」から、【】の中の A-101 を取り出します。 B2 に次の式を入力して、Enter キーを押します❶。
=TEXTBEFORE(TEXTAFTER(A2,"【") ,"】") TEXTAFTER(A2,"【") テキスト(【より後ろ)"】" 区切り文字(】より前)TEXTAFTER(A2,"【")"】"「【」と「】」を、取り出したい範囲の前後の文字に変えます。例:かっこ( )の中を取り出す
=TEXTBEFORE(TEXTAFTER(A2,"(") ,")") - Microsoft 365 の関数です。ほかのバージョンでは次の MID+FIND の方法を使います。

確認:【】の中の「A-101」が出た

答えは A-101 になりました❷。式は、次の順に計算しています。
- TEXTAFTERで「【」より後ろを取る
⇒ A-101】ブラック - TEXTBEFOREで「】」より前を取る
⇒ A-101
方法2:MID+FIND(全バージョン対応)
応用:同じ文字が複数あるとき
=TEXTAFTER(A2, "-", 2) は2個目の「-」より後ろを返します。末尾から数えるときは -1(最後の区切り)が便利です。【実機で検証】【】がないとき・2 つあるとき

| ためしたこと | 結果 |
|---|---|
| 「注文【A-12】りんご」から取り出す | A-12 |
| 【】がない(TEXTAFTER+TEXTBEFORE) | #N/A |
| 【】がない(MID+FIND) | #VALUE! |
| 「【A】と【B】」の 1 つ目 | A |
2 つ目(TEXTAFTER(A3,"【",2)) | B |
| TEXTAFTER と TEXTBEFORE の第 6 引数を “” にする | (空になる) |
【】がない文字では、TEXTAFTER は #N/A、MID+FIND は #VALUE! になりました。TEXTAFTER と TEXTBEFORE は、第 6 引数に “” を書くと、見つからないときに空にできます。2 つ目の【】は、TEXTAFTER の第 3 引数に 2 を指定すると取り出せました。
まとめ
| やりたいこと | 数式 |
|---|---|
| 【】の中身を抽出(365) | =TEXTBEFORE(TEXTAFTER(A2,”【”),”】”) |
| 【】の中身を抽出(全バージョン) | =MID(A2, FIND(“【”,A2)+1, FIND(“】”,A2)-FIND(“【”,A2)-1) |
| 特定の文字より後ろすべて | =TEXTAFTER(A2,”文字”) |
| 特定の文字より前すべて | =TEXTBEFORE(A2,”文字”) |
▶ こんな場合はこちら:特定の文字より後ろ(以降)を抽出する/TEXTBEFORE・TEXTAFTER関数の基本
特定の文字から特定の文字までの抽出のよくある質問
エクセルで、特定の文字から特定の文字までを抽出する式は?
Microsoft 365 なら =TEXTBEFORE(TEXTAFTER(A2,"【"),"】") です。どのバージョンでも使える式は =MID(A2,FIND("【",A2)+1,FIND("】",A2)-FIND("【",A2)-1) です。「ノートPC【A-101】ブラック」から A-101 が取り出せます。
目印の文字が無いセルは、どうなりますか?
エラーになります。TEXTAFTER+TEXTBEFORE の式は #N/A、MID+FIND の式は #VALUE! になりました。TEXTAFTER と TEXTBEFORE は、第6引数に "" を書くと、見つからないときに空にできます。

コメント