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

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

ちょっと難しいけど、できるから安心して。
- 特定の文字から特定の文字までを抽出するなら、MID関数とFIND関数を組み合わせる
- =MID(セル,FIND(“特定の文字から",セル)+1,FIND(“特定の文字まで",セル)-FIND(“特定の文字から",セル)-1)
【Excel・エクセル】MID関数とFIND関数をおさらい
画像のように、特定の文字までを抽出する場合、MID関数とFIND関数を組み合わせます。


プロデューサー……?

まずは2つの関数をおさらいしてみよう。
MID関数は、文字列の途中から任意の文字数までを抽出する関数です。

=MID(文字列,開始位置,文字数)
文字列 | このセルの |
開始位置 | 左から数えてこの位置から |
文字数 | この文字数分取り出して |
FIND関数は、指定した文字列が何番目にあるのかが分かる関数です。

=FIND(検索文字列,対象,開始位置)
検索文字列 | この文字列は |
対象 | この中の何番目にありますか |
開始位置 | この位置から数えて(省略可) |
【Excel・エクセル】特定の文字から特定の文字までを抽出する方法
画像のように、「(」から「)」までを取り出したいとき。
MID関数でできそうな気もしますが、開始位置と文字数がバラバラなので、うまくできません。

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

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

=MID(A2,FIND(“(",A2)+1,FIND(“)",A2)-FIND(“(",A2)-1)で求められるよ。やってみよう。
ステップ1
まずはMID関数から書いていきます。
「=MID(」まで入力してください。

ステップ2
次にどのセルから取り出したいか。
今回はA2ですね。
セルA2をクリックして、「,(カンマ)」です。

ステップ3
次は開始位置、これをFIND関数で表現していきます。
「FIND(」と入力します。

ステップ4
さて、ここからがちょっと難しいポイント!
今回の開始位置は「(」。まずはFIND関数で、「(」の位置を求めてみましょう。
FIND関数の検索文字列、どの文字まで抽出したいかを決めます。
今回は「(」の続きから抽出したいので、「"("」と入力します。
そして「,(カンマ)」。


文字列だから「""」で囲むんだね。
ステップ5
次に対象、どのセルから抽出したいかです。
MID関数で選んだセルと同じセルA2をクリックして、カッコを閉じます。

ステップ6
で、このFIND関数に「+1」します。
そして「,(カンマ)」。


何で+1するの?

そのままだと、検索した文字「(」まで含まれちゃうからね。
FIND(“(",A2)の答えは5ですが、MID関数で5文字目から取り出すと、(も含まれちゃいます。
今回は(の次の文字から取り出したいので、+1したというわけです。

ステップ7
MID関数に戻りまして、次は文字数ですね。
これも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となってしまいます。

なのでここは
- FIND(“)",A2)-(FIND(“(",A2)+1)
- FIND(“)",A2)-FIND(“(",A2)-1
のどっちかにしないといけません!

面倒くさかったら、文字数の方は-1するって覚えておくといいよ!。
というわけで、続きに「FIND(“)",A2)-FIND(“(",A2)-1」、最後にカッコを閉じます。

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


長かった~

もちろん「()」を別の文字にすれば、その間の文字列を取り出せるよ!
文字を抽出する関数はまだまだあるので、使いこなして自由自在に文字列を取り出しちゃってください!
それでは、お疲れさまでした!
- 特定の文字から特定の文字までを抽出するなら、MID関数とFIND関数を組み合わせる
- =MID(セル,FIND(“特定の文字から",セル)+1,FIND(“特定の文字まで",セル)-FIND(“特定の文字から",セル)-1)
ディスカッション
コメント一覧
まだ、コメントがありません