エクセル関数の組み合わせFIND&MIDでかっこの中の文字だけ抽出

FIND&MIDでかっこの中の文字だけ抽出
頻度高く質問をいただく「かっこの中の文字を取り出したい」という案件について記事を書きます。
かっこに関する質問は多いのですがこの質問が一番多いです。
1つのセルに入力された文字の中で「かっこの中にある文字だけ取り出したい」
という質問です。結論から申し上げますと「可能」です。2つの関数を組み合わせて使います。
今回は「FIND関数」と「MID関数」を組み合わせて課題を解決させます。

この記事を読むとかっこの中にある文字列を関数を使って簡単に取り出すことが出来るようになります。


質問の詳細(事例を読み解く)
質問いただいた方に具体的に内容を聞いてみると以下のようなデータを扱っているとの事。
文字の前方に固有情報が居て後ろのかっこ内に国名が居るというようなデータでした。
- 「JAPAN」や「THAILAND」等かっこの中の文字数は一定でない
- かっこの前にくる固有情報も文字数が決まっているわけではない
例えると113454(JAPAN)のような文字列です。
かっこの位置が番号で指定されているわけではないしTOTALの文字数も決まっていません。
決まってないものだらけのデータ構成ですがやれる方法は何点かあります。
備考:かっこには色々な種類がある
先程事例の中で紹介したかっこは半角のかっこです。()です。他にも【】や「」など色々なかっこがあります。
これから紹介する関数の書き方であればどんなかっこでも認識して中身を取り出す事ができます。
仕事と関数を結びつける
いきなり回答を出すのは難しいのでどうやったら答えにたどり着くか言葉で書いてみます。
まずは手作業でどうやるのかを考えます。そうすると必要な関数が見えてきます。
まずはやりたい事を書き出して整理する
紙に書き出してみるのも有効な方法です。自身の考えが整理出来ます。
今回は「かっこの位置を特定して間の文字を取り出す」という行為が出来れば作業完了です。
前方のかっこと後方のかっこの位置を特定します。
特定文字=かっこです。
前後のかっこの間の文字が特定できれば中身を取り出すことができます。
この2つを実現出来る関数は無いか探してみます。1つの関数で全部の作業は難しいです。
複数を組み合わせても良いのでまずは手作業でやった事を関数に置き換える事だけ考えてください。
質問の回答(値の抽出方法を提示)
結論です。以下の様に値を取り出します。セルB3からセルE3にかけて3段階で作業をしています。


記事の序盤でも申し上げましたがこの方法であればかっこの形は問いません。
FIND関数の中に認識させたいかっこを書くだけでOKです。
使用する関数(FIND関数とMID関数)
この作業には関数を2つ使います。以下関数を組み合わせて値を取り出します。
LEN関数やLEFT関数、RIGHT関数、SUBSTITUTE関数など・・・検索すると色々な関数が表示されます。
今回はFIND関数とMID関数を使います。
FIND関数
引数(パラメータ)が3つです。1つずつ見ていきましょう。
FIND(検索文字,対象,開始位置)
番号 | 引数 | 作業内容 |
---|---|---|
1 | 検索文字 | 検索したい文字 |
2 | 対象 | 検索したい文字が居る場所(セル) |
3 | 開始位置 | 何文字目から検索するのか |
最初の引数は 検索文字 ですね。これは名前の通りです。調べたい文字を指定します。
ここで1つポイントです。文字を扱う際はダブルクォーテーションで文字を挟んでください。
たとえば ( 前かっこを検索文字にしたいときは ”(” という事になります。
次の引数です。 対象 です。どこのセルに居る文字列を検索するのか指定します。
セルA1に居る文字列なら A1 となります。
最後の引数は 開始位置 です。先頭の文字から見ていきたいので1を記入します。
MID関数
続いてMID関数について解説します。引数が3つです。1つずつ見ていきましょう。
MID(文字列,開始位置,文字数)
番号 | 引数 | 作業内容 |
---|---|---|
1 | 文字列(検索文字) | 取り出したい文字が居る場所(セル) |
2 | 開始位置 | 起点となる文字位置 |
3 | 文字数 | 起点となる文字から何文字までを取り出すのか |
最初の引数は 文字列 です。文字列ではありますがどこに書いてある文字なのかを聞いています。
調べたい文字列が居るセルを指定しましょう。
続いての引数は 開始位置 です。何文字目から取り出すのかを指示します。
最後の引数は 文字数 です。 2つ目の引数から何文字目までを取り出すのか指示します。
一通り説明してみました。でもまだ「これで何が出来るのか?」と思っている方も居るでしょう。
以下で関数を組み合わせて値を抽出する作業をみていただきます。
値を抽出する方法:具体的にどうやって値を取り出すのか
作業は3段階です。内容を書き出すと以下のような構成になっています。
その中でFIND関数とMID関数を使います。
番号 | 関数名 | 作業内容 |
---|---|---|
1 | FIND | 前のかっこの位置を確認 |
2 | FIND | 後ろのかっこの位置を確認 |
3 | MID | 前後のかっこの中の値を取得 |
まずセルB3の文字をもとにセルC3へ先頭のかっこの文字位置をとる関数を記入します。
その後セルD3に後ろのかっこの位置、最後にかっこの間の文字を抜き出すという工程で値を取り出します。


1_前のかっこの位置を確認
画像ではセルC3の式です。以下の様になります。
=FIND(“(“,B3,1)
第1引数の “(“ という表記ですがお約束通り前かっこをダブルクォーテーションで囲んでいます。
第2引数の対象はそのままですね。B3の文字列が対象なのでB3と記入。
第3引数はどこから数えますか?という事ですので先頭の1文字目からですね。
そうすると 7 という数字が出てきます。
2_後ろのかっこの位置を確認
同じように後ろのかっこの位置をセルD3に表示させます。
前かっこの式から第1引数を “)” に変えただけです。
=FIND(“)”,B3,1)
後ろのかっこの位置は13ですのでセルD3には13と表示されています。
3_前後のかっこの中の値を取得
最後にセルE3にかっこ内の文字を取り出す関数を入力します。以下の様になります。
=MID(B3,C3+1,D3-C3-1)
MID関数の引数は3つです。まずは第1引数。検索対象の文字列なのでセルB3です。
第2引数は開始位置。先頭のかっこの位置は分かっているのでその1つ後ろから開始。
セルC3+1で7+1=8となり開始位置は8になります。
第3引数は文字数です。第2引数である開始位置から閉じる方のかっこの1つ前までの文字が欲しいです。
セルD3の値-セルC3の値を求めた後に最後に仕上げを行います。
かっこの中身は閉じるかっこの1つ前です。
よって文字数としては後ろかっこから1文字少ないところまでがかっこの中身となります。
式の最後に「-1」を付け加える事でかっこ内の文字列が綺麗に計算されます。
より作業が楽になるポイント
2つポイントを紹介します。作業の質が上がりますよ。
ポイント1_置換を使ってかっこの種類を統一させる
かっこには全角のかっこや半角のかっこなど色々な種類があります。
そうなると1つのワークシートの中で複数種類のかっこが混在している事も想定されます。
そんな時は「ホーム」タブの「編集」ブロック内「検索と選択」の中の置換を使います。
リンク内には動画もあります。使い方が分からない方は動画を見て使用感を掴んでください。
「置換」でかっこの種類を統一させることで本記事で紹介した方法をより活かすことができる様になります。
ポイント2_オートフィルを使うとより時短になる
この関数の並びを使うとこんな事ができます。
B列にセルB3と同じような情報が並んでいたとします。以下画像のような状態です。
C、D、E列の関数をオートフィルするとかっこ内の文字が取り出せます。


まとめ
エクセルは複数の関数を組み合わせる事でさらに複雑な事も出来るようになります。
関数を組み合わせると式が長くなるので内容が複雑になりエラーと隣り合わせの環境になりがちです。
しかししっかり理解して使えば自身の強い味方になってくれます。
今回のMID関数が使える様になるとLEFT関数やRIGHT関数の機能を兼ねる事が出来ます。
私は文字を数えたり加工する時はMID関数を使う事が多いです。是非お試しください。