FIND(ファインド)関数は、指定する数値データ・文字データまたは文字列データの位置を教えてくれる関数です。

【構文】

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

【使用例】

  • =FIND("県", B2, 1)
    セルB2のデータから「県」を「1」文字目から探します。セルB2のデータが「神奈川県」だった場合、先頭から4文字目にあるということで「4」の結果が返ります。
  • =FIND(0, B2, 5)
    セルB2のデータから「0」を「5」文字目から探します。セルB2のデータが「1A01_54012」だった場合、先頭の「1A01」の「0」は無視されるため、5文字目以降の「_54012」の「0」を見つけ、先頭から数えて8文字目にあるため「8」という結果が返ります。
  • =FIND("赤坂",B2, 1)
    セルB2のデータから「赤坂」を「1」文字目から探します。セルB2のデータが「東京都港区赤坂1-1-1」だった場合、「赤坂」の「赤」の位置を取得するため「6」が返ります。

FIND関数は、使用例のように単体で使うことはありません。LEFT関数やRIGHT関数と併用して使うことがほとんどです。指定の文字位置を見つけて、LEFT関数でそこまで抜き取ったり、LEN関数で導いた値から、FIND関数分を差し引いてRIGHT関数で抜いたりと、パズルのような使い方をします。

関数説明

こちらのデータで「赤坂」は何文字目にあるのかを探してみましょう。

FIND関数は、[数式]タブ→[検索文字列]の中にあります。

この関数を初めて覚える方は[検索文字列]という引数にひっかかりやすいのでご注意ください。

というのも[検索文字列]のところに、セルB3をセル参照してしまいがちです。第1引数はそのとおり、検索するキーワードを入力してください。

第2引数の[対象]がセル参照をする場所です。

開始位置は先頭から探すため、「1」と定義しましょう。

検索文字列は「赤坂」ではありますが、「赤坂」の「赤」は6文字目からスタートするため、「6」という結果が返りました。

続いて、セルB4のデータから、アンダースコア以降の「0」が何文字目にあるのか数えてみましょう。

数式はこのようになります。

5文字目から検索を行うので、最初の「1A01」は無視されて、先頭から「8」文字目にあることがわかりました。

ここもFIND関数の意味を間違えやすく、開始文字位置から〇文字? というわけではありません。FIND関数は、必ず先頭から何文字目? という結果になります。

このように、FIND関数は検索する文字の位置情報を教えてくれます。このため、LEFT関数やRIGHT関数と組み合わせて使うことで本領発揮するわけですね。

使用例を簡単にご紹介しておきます。

まず、LEFT関数を使って、「区」の位置まで抜くという方法。LEFT関数とFIND関数の合わせ技で可能となります。

右側のデータを抜きたい場合、LEN関数で全体の文字列を求めて、そこからFIND関数で見つかった文字位置を引き算します。

こうすることで、右側のデータを抜くことが可能です。

この組み合わせはぜひ覚えておいてくださいね!

さえちゃんのFIND関数ワンポイントアドバイス

LEFT・RIGHT・MID・FIND・LENの5つの関数を知っておくと、だいたいのデータクレンジングは可能です。ただし、データクレンジング操作は関数で答えを正確に求めることは不要で、手作業のほうが早いケースもあります。関数を組み立てられないから時間がかかった! なんてことのないようにご注意ください。

例えば、都道府県のデータを抜く場合のケースを想定してみましょう。住所データから、北海道・青森県・神奈川県・東京都…という感じでデータを抜きたい場合です。

1都1道2府43県の都道府県データを作成したい場合、関数を使ってすべて条件通りに抜くのは難しいでしょう。

すべてのパターンにマッチする数式を考えると、こんなふうに長い数式を作成してしまいます。

=IFERROR(IF(FIND("県",B3,1)=3,LEFT(B3,3),LEFT(B3,4)),LEFT(B3,3))

1都1道2府43県の都道府県データで例外データはどれか? に着目します。とりあえず、LEFT関数でシンプルに出力してみます。

この場合、神奈川県だけが不十分になります。

北海道・東京都・京都府・大阪府はすべて3文字で事足りるため、問題なし。県を含む4文字データを探し、そのデータだけ注意します。

都道府県データで、例外な3県ありますよね。

神奈川県・和歌山県・鹿児島県

もし、データが多い場合は、FIND関数で調べるのも手です。

県でない年はVALUEエラーが出力されますが、この場合「4」と出力されたものだけ注意すればいいわけですからね。

表見出しを追加して、1列加えた表にし、フィルターで抽出します。

抽出されたデータだけを修正すれば完了です。

文字列操作関数はそのほかの関数でもご説明いたしましたが、最終的には数式を取り除くため、値貼り付けを行います。

そのため、完璧な数式を作成しても、最後には数式を値貼り付けで取り除かないと使えないので、結果さえあっていれば問題なし、完璧な数式を考えることは必要ないのです。

困難は分割せよ。クレンジング操作の罠にはまらないようご注意ください。

関数ステータス

関数ライブラリの種類

文字列操作

数式の構文

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

引数ダイアログ

Microsoft 公式サポート

FIND関数 - Office サポート