【Excel・エクセル】特定の文字から特定の文字までを抽出するやり方!

抽出

もりの

()の中の文字を取り出せないかな?

やまの

ちょっと難しいけど、できるから安心して。

今回のポイント
  • 特定の文字から特定の文字までを抽出するなら、MID関数とFIND関数を組み合わせる
  • =MID(セル,FIND(“特定の文字から",セル)+1,FIND(“特定の文字まで",セル)-FIND(“特定の文字から",セル)-1)

スポンサーリンク

【Excel・エクセル】MID関数とFIND関数をおさらい

画像のように、特定の文字までを抽出する場合、MID関数とFIND関数を組み合わせます。

特定の文字から特定の文字までを抽出する練習問題
括弧の中を抽出したい
もりの

プロデューサー……?

やまの

まずは2つの関数をおさらいしてみよう。

MID関数は、文字列の途中から任意の文字数までを抽出する関数です。

MID関数の例
MID関数の例
MID関数の書き方

=MID(文字列,開始位置,文字数)

文字列このセルの
開始位置左から数えてこの位置から
文字数この文字数分取り出して

FIND関数は、指定した文字列が何番目にあるのかが分かる関数です。

FIND関数の例
文字列の位置が分かる
FIND関数の書き方

=FIND(検索文字列,対象,開始位置)

検索文字列この文字列は
対象この中の何番目にありますか
開始位置この位置から数えて(省略可)

【Excel・エクセル】特定の文字から特定の文字までを抽出する方法

画像のように、「(」から「)」までを取り出したいとき。

MID関数でできそうな気もしますが、開始位置と文字数がバラバラなので、うまくできません。

特定の文字から特定の文字までを抽出する練習問題
括弧の中を抽出したい

そんな時は、FIND関数で「(」と「)」の位置を確認し、MID関数の開始位置と文字列に当てはめればいいのです。

もりの

お、なんか難しそう?

ちょっとコツが必要なので、一つずつやり方を見ていきましょう。

やまの

=MID(A2,FIND(“(",A2)+1,FIND(“)",A2)-FIND(“(",A2)-1)で求められるよ。やってみよう。

ステップ1

まずはMID関数から書いていきます。

「=MID(」まで入力してください。

「=MID(」まで入力した画像
まずは関数名

ステップ2

次にどのセルから取り出したいか。

今回はA2ですね。
セルA2をクリックして、「,(カンマ)」です。

取り出したいセルをクリックした画像
取り出したいセルをクリック

ステップ3

次は開始位置、これをFIND関数で表現していきます。

「FIND(」と入力します。

FIND関数を入れ子にした画像
いけ、FIND関数

ステップ4

さて、ここからがちょっと難しいポイント!

今回の開始位置は「(」。まずはFIND関数で、「(」の位置を求めてみましょう。

FIND関数の検索文字列、どの文字まで抽出したいかを決めます。

今回は「(」の続きから抽出したいので、「"("」と入力します。

そして「,(カンマ)」

検索文字列を入力した画像
どの文字まで抽出したいか
もりの

文字列だから「""」で囲むんだね。

ステップ5

次に対象、どのセルから抽出したいかです。

MID関数で選んだセルと同じセルA2をクリックして、カッコを閉じます

セルA2を指定した画像
どのセルから探したいか

ステップ6

で、このFIND関数に「+1」します。

そして「,(カンマ)」

FIND関数に+を足した画像
+1する
もりの

何で+1するの?

やまの

そのままだと、検索した文字「(」まで含まれちゃうからね。

FIND(“(",A2)の答えは5ですが、MID関数で5文字目から取り出すと、(も含まれちゃいます。

今回は(の次の文字から取り出したいので、+1したというわけです。

文字数の説明画像
取り出したいのは6文字目から

ステップ7

MID関数に戻りまして、次は文字数ですね。

これもFIND関数で求めるので、「FIND(」まで入力します。

文字数にFIND関数を使う画像
文字数もFIND関数で求める

ステップ8

文字数の求め方は、「)」までの文字数から、さっき求めた「(」の場所+1を引けばOKです。

「)」までの文字数は、「FIND(“)",A2)」でもとめられますね。

ここからさっきの「FIND(“(",A2)+1」を引くわけです。

もりの

つまり、FIND(“)",A2)-FIND(“(",A2)+1!

やまのののんびりした顔
やまの

おしい。

「FIND(“(",A2)+1」の答えは6。

「FIND(“)",A2)」の答えは8です。

つまり8-6で2が正解なのですが……

文字数の画像
コレはちょっとややこしいね

もりのの式だと、「FIND(“)",A2)」が8、「FIND(“(",A2)」が5。

これに+1で4となってしまいます。

間違った計算式
2のはずが4になってる!

なのでここは

  • FIND(“)",A2)-(FIND(“(",A2)+1)
  • FIND(“)",A2)-FIND(“(",A2)-1

のどっちかにしないといけません!

やまの

面倒くさかったら、文字数の方は-1するって覚えておくといいよ!。

というわけで、続きに「FIND(“)",A2)-FIND(“(",A2)-1」、最後にカッコを閉じます。

特定の文字から特定の文字までを抽出する式
文字数の方は割とややこしい

完成!

長い道のりでしたが、無事特定の文字から特定の文字までを取り出せました!

()の間の文字列を抽出できた画像
()の間の文字列を抽出できた
もりの

長かった~

やまの

もちろん「()」を別の文字にすれば、その間の文字列を取り出せるよ!

文字を抽出する関数はまだまだあるので、使いこなして自由自在に文字列を取り出しちゃってください!
それでは、お疲れさまでした!

今回のおさらい
  • 特定の文字から特定の文字までを抽出するなら、MID関数とFIND関数を組み合わせる
  • =MID(セル,FIND(“特定の文字から",セル)+1,FIND(“特定の文字まで",セル)-FIND(“特定の文字から",セル)-1)

数式・関数,Excel抽出

Posted by morino