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

お知らせ記事には広告が含まれておりますがExcelのスキルUPに繋がる様コンテンツ自体は手を抜かずに作成しております

WinスクールにはVBAの講座が5つ用意されています

かっこ内の文字列を抽出する関数の組み合わせはコレだ

エクセルには色々な関数が用意されています。

この関数を組み合わせる事でさらに色々な事が出来る様になります。

頻度高く質問をいただく「かっこの中の文字を取り出したい」という案件について記事を書きます。

かっこに関する質問は多いのですがこの質問が一番多いです。

質問です

1つのセルに入力された文字の中で「かっこの中にある文字だけ取り出したい」

という質問です。結論から申し上げますと「可能」です。2つの関数を組み合わせて使います。

FIND関数とMID関数を組み合わせて課題を処理していきます。

EnjoyExcel
EnjoyExcel

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

関連記事

エクセルユーザーの皆様は関数を検索する際どうやって検索していますか?

私はGPTExcelを使っています。こちらはGPTExcelの使い方を説明している記事です。

GPTExcelはエクセル関数やVBAを自動生成してくれるアプリケーションです。

使い方が分かるGPTExcelとは?無料プランで使い方や日本語対応可否を調査

こちらの記事ではChatGPTとGPTExcel、Google検索を使って関数を探しながら作業を比較しています。

それぞれのツールのメリット、デメリットや使い時が分かります。

では早速作業にかかります。かっこの中の文字を抽出してみましょう。

質問の詳細

質問いただいた方に具体的に内容を聞いてみると以下のようなデータを扱っているとの事。

文字の前方に固有情報が居て後ろのかっこ内に国名が居るというようなデータでした。 

  • JAPAN や THAILAND 等かっこの中の文字数は一定でない
  • かっこの前にくる固有情報も文字数が決まっているわけではない

例えると 113454(JAPAN) のような文字列です

かっこの位置が番号で指定されているわけではないしTOTALの文字数も決まっていません。

決まってないものだらけのデータ構成です。

難しそうな気がするのですがやれる方法は何点かあります。

何点かある中で関数を選択しました。理由は出来るだけたくさんの人が出来る様にする為です。

かっこはどんな形のかっこでもOK

先程紹介したかっこは半角のかっこです。()です。他にも【】や「」など色々なかっこがあります。

これから紹介する関数の書き方であればどんなかっこでも認識して中身を取り出す事ができます。

余談ですがかっこ、括弧、カッコなど色々な呼び方があります。英語ではparenthesesです。

どれを使っても良いです。Excelの中では決まった呼び名はありません。

仕事と関数を結びつける

いきなり回答を出すのは難しいのでどうやったら答えにたどり着くか言葉で書いてみます。

まずは手作業でどうやるのかを考えます。そうすると必要な関数が見えてきます。

紙に書き出してみるのも有効な方法です。自身の考えが整理出来ます。

今回は「かっこの位置を特定して間の文字を取り出す」という行為が出来れば作業完了です。

複雑なので分けて考えてみましょう。

やりたい事
  • 1
    かっこの位置を特定する

    前方のかっこと後方のかっこの位置を特定します。

  • 2
    特定文字の間の文字を取り出す

    ここで言う特定文字はかっこです。

    前後のかっこの間の文字が特定出来れば取り出す事が出来ます。

この2つを実現出来る関数は無いか探してみます。1つの関数で全部の作業は難しいです。

複数を組み合わせても良いのでまずは手作業でやった事を関数に置き換える事だけ考えてください。

やりたい事を分けてシンプルにする事でインターネットで検索にかけた際ヒットしやすくなります。

私は以下関数がヒットしました。

  • FIND関数 指定した文字の位置を調べる関数です
  • MID関数 指定した文字位置から指定した文字数を抜き出す関数です

FIND関数でかっこの位置を特定しその間の値をMID関数で取り出す

これでかっこの中の値を取り出す事が出来ます。

回答

結論です。以下の様に値を取り出します。セルB3からセルE3にかけて3段階で作業をしています。

C列、D列の戻り値を使ってB列の値からかっこの中の文字列だけをE列に取り出しています。

3段階の作業を書き出すと以下のような構成になっています。

番号関数名作業内容
1FIND前のかっこの位置を確認
2FIND後ろのかっこの位置を確認
3MID前後のかっこの中の値を取得
分けて考えるとわかりやすいです

まずセルB3の文字をもとにセルC3へ先頭のかっこの文字位置をとる関数を記入します。

その後セルD3に後ろのかっこの位置、最後にかっこの間の文字を抜き出すという工程で値を取り出します。

この作業には関数を2つ使います。以下関数を組み合わせて値を取り出します。

関数を紹介
  1. FIND(索文字列,対象,開始位置)
  2. MID(文字列,開始位置,文字数)

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文字数起点となる文字から何文字までを取り出すのか
MID関数の第3引数はクセがあり混乱する人が多いです ゆっくり考えてみましょう

最初の引数は 文字列 です。文字列ではありますがどこに書いてある文字なのかを聞いています。

調べたい文字列が居るセルを指定しましょう。

続いての引数は 開始位置 です。何文字目から取り出すのかを指示します。

最後の引数は 文字数 です。 2つ目の引数から何文字目までを取り出すのか指示します。

一通り説明してみました。でもまだ「これで何が出来るのか?」と思っている方も居るでしょう。

以下で関数を組み合わせて値を抽出する作業をみていただきます。

具体的にどうやって値を取り出すのか

かっこの位置を調べてから値を抜き出すまでの方法を解説します。

解説を理解し易くする為に再度回答が書かれている画像を用意しました。

解説が理解しやすい様に再度が層を貼り付けておきます。画像を見ながら記事を読んでください。

記事の序盤でも申し上げましたがこの方法であればかっこの形は問いません。

Find関数の中に認識させたいかっこを書くだけでOKです。

かっこの位置を調べる

画像ではセルC3の式です。以下の様になります。

=FIND(“(“,B3,1)

第1引数の “(“ という表記ですがお約束通り前かっこをダブルクォーテーションで囲んでいます。

第2引数の対象はそのままですね。B3の文字列が対象なのでB3と記入。

第3引数はどこから数えますか?という事ですので先頭の1文字目からですね。

そうすると 7 という数字が出てきます。

同じように後ろのかっこの位置をセルD3に表示させます。やってることは同じです。

第1引数を “)” に変えただけ。後ろのかっこの位置は13ですのでセルD3には13と表示されています。

かっこの間の文字を取り出す

最後にセル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 を式に付け加える事でかっこ内の文字数が計算されます。

ちょっとわかりにくいので紙に書いて実際の文字を数えてみると分かりやすいです。

これでセルE3に JAPAN という文字だけ抜き取ることが出来ます。

やりたい事を紙に書き出して考えるという方法は頭の中を整理するのにすごく良い方法です。

最初からセルに関数を書き込んで・・・という方法は慣れた人の作業方法です。

知らない関数を使ったり作業に慣れてない時は紙の上で色々試行錯誤してからセルに情報を入力しましょう。

応用:オートフィルを使うとより時短になる

この関数の並びを使うとこんな事ができます。

B列にセルB3と同じような情報が並んでいたとします。以下画像のような状態です。

C、D、E列の関数をオートフィルするとかっこ内の文字が取り出せます。

オートフィルの例です。3行目に書いた関数を4,5行目に展開してみました。

まとめ

エクセルは複数の関数を組み合わせる事でさらに複雑な事も出来るようになります。

関数を組み合わせると式が長くなるので内容が複雑になりエラーと隣り合わせの環境になりがちです。

しかししっかり理解して使えば自身の強い味方になってくれます。

今回のMID関数が使える様になるとLEFT関数やRIGHT関数の機能を兼ねる事が出来ます。

私は文字を数えたり加工する時はMID関数を使う事が多いです。是非お試しください。

参考:どうやって書籍を選んでいるのか

私自身がどうやって勉強しているのか?という問い合わせをいただく事があります。

中でも「本はどうやって選んでいますか?」という問い合わせが多いです。

書店でもネット環境でも同じ軸で書籍を選んで購入していますので一部を紹介します。

タイトルとURLをコピーしました