FIND, SEARCH関数 指定した文字の位置を返します

 FIND関数SEARCH関数 は対象文字列の中から指定した文字を検索して、その位置を返します。FIND関数SEARCH関数 の違いは英字の大文字と小文字を区別するかしないかという1点のみです。エクセルについてある程度習熟していれば FIND関数 はおなじみの関数だと思いますが、応用範囲を広げるためには第3引数の使い方まで把握しておく必要があります。
 

FIND関数

 FIND関数

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

の形で使用し、 [検索文字列] の先頭文字が [対象] のどの位置にあるかを得ます。3つめの引数では検索を開始する(左から数えた)文字位置を指定できます。ここでは "Kobato" という文字列を例に色々と試してみましょう。

=FIND("o","Kobato")

と入力した場合、「 Kobato 」から「 o 」の文字を探してその位置を返しますが、「 Kobato 」には2つの「 o 」が含まれていますね。このように検索対象が複数ある場合は、左側から数えて最初に見つかった位置を返してきます。今の例では「 2 」です。しかし第3引数を指定して

=FIND("o","Kobato",3)

と記述すると、検索開始位置が左から3番目の「 b 」なので、最初の「 o 」は飛ばされて、その次の「 o 」の文字位置「 6 」を返します。ちなみにFIND関数は大文字と小文字を区別するので、

=FIND("O","Kobato")

と入力しても「ないよ!」とエラーが返ってきます。
 

SEARCH関数

 冒頭にも説明したように、FIND関数とSEARCH関数の使い方はほとんど同じなので、ここでは繰り返しませんが、大文字と小文字を区別しないという例を1つだけ載せておきます。

=SEARCH("O","Kobato")

と入力すると小文字の「 o 」がある位置「 2 」を返します。
 

KOBATOちゃんを見つけましょう!

 それではクイズです! セル B2 に入力されている

QIMXPEKOBATOJUFFIKQMEUPPE

というアルファベットの文字列から「 KOBATO 」という文字を見つけてね! え? すぐに見つかった? ダメ! 目で見つけるのではなく、ちゃんとエクセル関数を使って「 KOBATO 」という文字を抜き出してくださいな! どんな関数を使うのかなー。制限時間は10秒ねー。

10、9、8、7、6、5、4、3 ......

 たーいむあーっぷ! それでは解答です! 
 まずFIND関数だけじゃどうしようもありませんね。

=FIND("KOBATO",B2)

としたところで、「 KOBATO 」という文字が始まる「 7 」という数値が返ってくるだけです。でもこの数字は何かに使えそうですね。そこで
「そうだ! 文字列を抜き出すMID関数があったぞ!」
と思い出すわけです(ちょっと強引)。MID関数の記述様式は

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

ですから、開始位置にFIND関数を組込んで、

=MID(B2,FIND("KOBATO",B2),6)

とすればちゃんと「 KOBATO 」が返ってきます!

 (エクセル)FIND関数

 ⇒ エクセル関数辞典トップページ

Google広告
スポンサーリンク
スポンサードリンク
末尾大型広告
末尾大型広告

コメントをどうぞ

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください