Excel関数 逆引き集 | 括弧内文字抽出 → MID

Excel
スポンサーリンク

概要

「商品A(赤)」「山田太郎(営業部)」みたいに、
セルの中の “括弧の中だけ” を取り出したくなる場面、よくあります。

このときの王道パターンが
MID(部分切り出し)+FIND(位置を探す)

  • 「( がどこにあるか」
  • 「 ) がどこにあるか」
  • 「その間を何文字分切ればいいか」

を計算して抜き出す方法です。
仕組みさえ理解すれば、どんな括弧パターンにも応用できます。


基本の考え方(MID と FIND の役割)

MID の役割

MID は「文字列の途中から、何文字か取り出す」関数です。

=MID(文字列, 開始位置, 文字数)
  • 開始位置:何文字目から取るか
  • 文字数:そこから何文字取るか

例:A2 に「商品A(赤)」が入っているとき

=MID(A2, 4, 2)

→ 4文字目から 2文字 → 「赤」

この「開始位置」と「文字数」を、括弧の位置から自動計算してあげればいい、という発想です。


FIND の役割

FIND は「指定した文字が、左から何文字目にあるか」を教えてくれます。

=FIND(検索文字列, 対象文字列)

例:A2 に「商品A(赤)」が入っているとき

=FIND("(", A2)

→ 「(」がどこにあるか(位置)を返す

=FIND(")", A2)

→ 「)」の位置を返す

あとは、
「開始位置=“( の次の文字”」
「文字数=“)までの距離 − 1”」
と決めてあげれば、括弧の中だけ切り出せます。


括弧内文字抽出の基本形(丸括弧)

一番よく使う型

A2 に「商品A(赤)」が入っているとします。
この「(」と「)」の間の「赤」だけ取り出したい場合。

定番の式はこれです。

=MID(
  A2,
  FIND("(", A2) + 1,
  FIND(")", A2) - FIND("(", A2) - 1
)

1行にすると:

=MID(A2, FIND("(", A2)+1, FIND(")", A2)-FIND("(", A2)-1)

中身をかみ砕くと

  • 開始位置:FIND("(", A2)+1
    「(」の直後の文字が、括弧内の先頭
  • 文字数:FIND(")", A2) - FIND("(", A2) - 1
    「)の位置 − (の位置 − 1」=括弧の中の文字数

これで、日本語の全角括弧「( )」の間だけ、きれいに抜き出せます。


半角括弧「()」の場合

データによっては、半角括弧「()」を使っていることも多いです。
この場合も考え方は同じで、FIND の検索文字だけ変えればOKです。

A2:「山田太郎(営業部)」

括弧内「営業部」を取りたい式:

=MID(
  A2,
  FIND("(", A2) + 1,
  FIND(")", A2) - FIND("(", A2) - 1
)

1行版:

=MID(A2, FIND("(", A2)+1, FIND(")", A2)-FIND("(", A2)-1)

全角か半角か、
実際にセル内の括弧をコピーして貼り付けるとミスが減ります。


応用:異なる種類の括弧にも対応

角括弧「【 】」や波括弧「〔 〕」も同じ発想

たとえば A2 に

「商品B【青】」
「商品C〔特価品〕」

のような文字列がある場合も、
「どの文字で挟まれているか」さえ分かれば、同じ型で対応できます。

例:A2:「商品B【青】」から「青」を取り出す

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

例:A2:「商品C〔特価品〕」から「特価品」を取り出す

=MID(
  A2,
  FIND("〔", A2) + 1,
  FIND("〕", A2) - FIND("〔", A2) - 1
)

ポイントは「開始位置」「終端位置」を
それぞれの括弧で FIND しているだけ、ということです。


応用:括弧がないときのエラー対策(簡易)

FIND は、文字が見つからないとエラーになります。
「括弧がない行も混ざっている」表の場合、そのままだと #VALUE! エラーが出ます。

簡易的な防ぎ方として、IFERROR を組み合わせる方法があります。

A2:「商品名(赤)」か「商品名」のどちらかが入る想定で、
括弧があれば中身、なければ空白を返したい場合。

=IFERROR(
  MID(A2, FIND("(", A2)+1, FIND(")", A2)-FIND("(", A2)-1),
  ""
)

括弧がない行では FIND がエラー → IFERROR で “” を返す、という動きです。
まずは「括弧が必ずあるパターン」で慣れてから、必要に応じて足すと理解しやすいです。


例題

問題1

A2 に「商品A(赤)」という文字列が入っています。
この中から括弧「( )」の中だけを取り出して「赤」と表示したいです。
MID と FIND を組み合わせた式を書いてください。

=MID(A2, FIND("(", A2)+1, FIND(")", A2)-FIND("(", A2)-1)

問題2

A2 に「山田太郎(営業部)」という文字列が入っています。
この中から括弧「( )」の中身だけを取り出して「営業部」と表示する式を書いてください。

=MID(A2, FIND("(", A2)+1, FIND(")", A2)-FIND("(", A2)-1)

問題3

A2 に「商品B【青】」という文字列が入っています。
この中から「【 】」の中身だけを取り出して「青」と表示する式を書いてください。

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

問題4

A2 に「商品C(特価品)」または「商品C」のどちらかが入っています。
括弧がある場合は中身だけ(「特価品」)、括弧がない場合は空白 “” を返したいです。
MID・FIND・IFERROR を組み合わせた式を書いてください。

=IFERROR(MID(A2, FIND("(", A2)+1, FIND(")", A2)-FIND("(", A2)-1), "")

問題5

A2 に「山田太郎(営業部)」という文字列が入っています。
この中で、「(」の位置(何文字目か)と、「)」の位置(何文字目か)を求める式をそれぞれ1つずつ書いてください。

=FIND("(", A2)
=FIND(")", A2)

括弧内抽出の“型”は、たったこれだけです。

=MID(
  文字列,
  FIND("開き括弧", 文字列)+1,
  FIND("閉じ括弧", 文字列) - FIND("開き括弧", 文字列) - 1
)

この型さえ体で覚えてしまえば、
丸括弧でも角括弧でも、タグっぽい記号でも、
「何かで挟まれた中身だけ欲しい」という場面に、いくらでも応用できます。

Excel
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました