応募する

応募する

Tel.03-4500-9361 / 受付時間:平日10:00~19:00

こちらは全て株式会社エージェントゲートでの採用・募集となります。

エクセル(Excel)のFIND関数を使い方|SEARCH関数との違いも解説

エクセルにはさまざまな関数が用意されていますが、文字列を検索できる関数に「FIND関数」というものがあります。FIND関数の使い方と他の関数との組み合わせ方を覚えると、非常に便利な機能が使えるようになるため、優先して覚える価値のある関数です。

この記事では、エクセルのFIND関数の使い方と使用例を解説します。記事の後半では、FINDB関数との違いやSEARCH関数との違いも解説しているので、ぜひ参考にしてください。

エクセルのFIND関数とは?

エクセルのFIND(ファインド)関数とは、「県」や「区」、ハイフンなど、指定した文字列が何文字目に位置しているかを求める関数です。日本語、英語、数字、大文字小文字に関係なく、全て1文字にカウントされます。

例えば、上の画像ではA2セルに入力された文字列の中で、「区」という文字が何番目にあるかを数えて表示しています。文字列を見てみると「東京都渋谷”区”」なので、6番目という表示は適切です。

FIND関数の数式・引数

FIND関数は、下記の数式で表されます。

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

全部で3つの引数があり、難しく感じるかもしれませんが、実は簡単な内容です。

第1引数:検索文字列

まず第1引数の検索文字列は、位置を調べたい単語を記入します。ここで注意したいのは、文字列ならダブルクオーテーションマークで囲い、数字なら不要という点です。エクセルで関数を使う際は、ダブルクォーテーションで囲うことで、ひらがな、カタカナ、漢字、記号、アルファベットといった文字列を表現できます。

文字列を入力するのにダブルクォーテーションマークを忘れるとエラーが発生することが多いため、注意しましょう。

FIND関数の第一引数に文字列を入力する際、ダブルクォーテーションを忘れるとNAMEエラーが発生します。「#NAME?」という表示が出たら第1引数を確認してみましょう。

第2引数:対象

第2引数の対象は、どのセルを参照するかを指しています。上記の画像のように、それぞれA2、A3、A4セルを対象にしています。後ほど詳しく解説しますが、検索したい文字列を含まない誤ったセルを指定すると、#VALUE!エラーが発生するので注意しましょう。

第3引数:開始位置

第3引数の開始位置では、文字の検索を始める位置を指定します。省略可能で、もし省略した場合は、先頭から検索が始まります。先頭から文字を数える場合は、省略しても、半角数字で「1」と指定しても構いません。

ここでポイントなのが、開始位置を指定しても、対象のセルの先頭文字からの位置が返されることです。開始位置を5にしても、FIND関数は先頭から数えた時の位置を出力します。

FIND関数の使い方

FIND関数を使う際は、まず2つ決めておくべきことがあります。それは「どのような文字列を検索するか」と「どの列を参照先の対象セルに指定するか」です。

きちんとこの2つを明確にしておかないと各種エラーが発生する可能性が高まります。

まず第1引数で何を検索するか決めましょう。検索できる文字列はどのようなものでも大丈夫です。ひらがな、カタカナ、漢字、記号、アルファベット、数字、あらゆる文字を検索できます。重ねての説明にはなりますが、数字以外はダブルクォーテーションマークで囲わないと文字列として読み込まれずにエラーが発生します。

上記の画像の6行目・7行目で明らかになっているように、大文字と小文字は、それぞれ完全に一致した際に検索位置が表示されるため、把握しておきましょう。

次に検索したい文字が含まれたセルを選択します。誤って複数セルを選択してしまうと、「#SPILL!エラー」が発生してしまうため、必ず1つのセルだけを対象に選択してください。

空白の調べ方

文字列を検索する際、エクセルは全角と半角を区別して認識します。空白の位置を検索する場合は、全角と半角のどちらで検索するか、考慮してから第1引数を記入しましょう。

#VALUE!エラーが出た場合の対処法

#VALUE!エラーが発生する原因は次の2つです。

・検索する文字列を間違えている(第1引数のミス)

・参照先のセルに指定した文字列が含まれていない(第2引数のミス)

第1引数で検索する文字列を変更するか、第2引数で指定するセルを変更しましょう。

FIND関数の応用方法

FIND関数は単体だとそこまで使い道が広がらない関数ですが、他の関数と組み合わせることで真価を発揮します。ここでは「IFERROR関数」との組み合わせを解説します。

IFERROR関数と組み合わせる

上記の画像のように、東京”都”、北海”道”、京都”府”、埼玉”県”といった住所が埋まっている場合、「都・道・府・県」の文字の位置を調べたい、となった時にFIND関数では表すのが非常に難しいです。セル1つずつに都道府県で別々の検索文字列を指定しなければならないため、オートフィルも使いづらくなります。

そこで組み合わせるべきなのがIFERROR関数です。エラー値を別の文字に置き換えてくれるため、都道府県を順に検索した際に#VALUE!エラーを防げます。少しのミスでエラーが起こりやすいFIND関数を扱う際にピッタリの関数です。

IFERROR関数とFIND関数を組み合わせた数式は、下記のようになります。

=IFERROR(FIND(検索文字列1,対象セル),IFERROR(FIND(検索文字列2,対象セル),0))

こちらは2つの条件を儲けるときの数式ですが、IFERROR関数のかっこを増やしていけば、条件を追加可能です。都道府県を自動で判別する数式は下記のようになります。

=IFERROR(FIND(“都”,対象セル),IFERROR(FIND(“道”,対象セル),IFERROR(FIND(“府”,対象セル),IFERROR(FIND(“県”,対象セル),0))))

順番に都道府県の文字列をチェックして、該当するものがなければ「該当なし」と表示されます。

RIGHT・LEFT・MID関数

英語の意味から意味を推測できますが、RIGHT・LEFT・MID関数は右、左、真ん中の文字を切り抜く関数です。FIND関数が文字の検索位置を調べるのに対し、これらの関数は文字列を切り取って表示できます。

例えばRIGHT関数を使えば、右側から指定した文字数を切り抜けます。A1セルに「あいうえおかきくけこ」と入っていたら、A1セルを指定して5を指定すると右から5番目の「かきくけこ」と表示できるのです。LEFT関数は左側から指定した文字数を切り抜く関数です。先ほどのA1セルに4文字を指定すると「あいうえ」と表示されます。

MID関数は左から◯番目、右から◯番目と選択して文字を切り抜く関数です。対象セルを選んで、左右それぞれ何文字目から切り抜くか指定します。例えば「=MID(A1,4,2)」と指定すれば「えおかきく」と表示されます。

これらの関数をFIND関数と組み合わせると、指定された文字数ではなく、指定された文字列までを検索して切り抜けるようになるので、大変おすすめです。

例えば「東京都渋谷区神宮前」といった文字列があった際に、FIND関数だけでは文字列の位置しか表示できず、RIGHT・LEFT関数・MID関数といった関数では、都道府県、市区町村名の文字数が変動するため、適切に切り抜けません。そこで。FIND関数と、RIGHT・LEFT関数・MID関数を組み合わせることで、都道府県だけ、市区町村だけ切り抜けるのです。

例えば、FIND関数で都道府県を検索しましょう。東京都の場合は「3」と表示されます。このFIND関数の数式をLEFT関数の引数にすることで、3文字目までが切り抜かれます。つまり東京都までが切り抜けるようになるのです。

FIND関数とFINDB関数との違い

FIND関数とよく似た関数にFINDB関数というものがあります。名前もほとんど同じですが、どのような違いがあるのでしょうか?

数える対象の違い

FIND関数は文字列を数え、FINDB関数はバイト数を数えます。FIND関数はひらがな、カタカナ、漢字、アルファベット、数字、記号、大文字、小文字、全角、半角、どのような値でも「1」としてカウントします。しかし、FINDB関数はバイト数を数える関数です。

バイトとはデータの単位で、全角文字は2バイト、半角文字は1バイトとしてカウントします。「あいうaiu」という文字列で「a」という文字列を検索する場合、表示される数字は「7」です。あいうは全て全角文字なので2バイトずつになります。aは半角文字なので1バイト、つまり7バイト目にあたるため、出力結果が7となる仕組みです。

FINDB関数の使い方

FINDB関数はFIND関数と同様の数式で表せる関数です。数式は下記のようになります。

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

検索文字列は検索したい文字を指します。こちらも数値はそのままで良いですが、文字や記号を入力する場合は、ダブルクォーテーションマークで囲い、文字列として認識させましょう。

対象は参照先のセルを指しています。開始位置はFIND関数同様、省略して構いません。省略した場合は先頭から文字がカウントされます。

FIND関数とSEARCH関数の違い

文字列の位置を検索する関数としてFIND関数の他にSEARCH関数というものがあります。認識する文字の違いや、ワイルドカードの使用といった点が特徴です。ここでは、FIND関数とSEARCH関数の違いについて解説します。

文字の区別

FIND関数では全角文字と半角文字を分けて判別しました。例えば全角の空白が入力されたセルで半角の空白を探してしまうと、#VALUE!エラーが発生してしまいます。エラーが出ないようにするには、引数を修正するか、IFERROR関数によるエラー回避が必要です。

一方で、SEARCH関数は全角と半角を分けずに文字列を検索します。そのため、大文字、小文字、全角、半角関係なしに、曖昧な文字列検索が可能です。

例えば、「ABCdefabcDEF」という文字列が並んでいた場合、FIND関数で「c」を検索すると、「9」と出力されます。しかし、SEARCH関数で探せば全角と半角を区別しないため、「3」と表示されるのです。

ワイルドカード

エクセルの関数には、ワイルドカードを使用できるものがあります。ワイルドカードとは、特定の記号を用いて、〇を含む、〇から始まるといった曖昧な検索ができるというものです。例えばアスタリスク(*)を使うと、下記のような表し方になります。

*◯* 「◯を含む」
◯* 「◯から始まる」
*◯ 「◯で終わる」

このワイルドカード検索ができるのがSEARCH関数です。FIND関数ではワイルドカードを使えません。

SERACHB関数もある

FIND関数とFINDB関数があるように、SEARH関数にはSEARCHB関数があります。文字数ではなく、バイト数を数える関数なので、使い分けが必要です。

まとめ

エクセルのFIND関数は、特定の文字列を指定して、何文字目にあるのかを出力する関数です。単に文字の位置を出力するだけではあまり使い道がありませんが、IFERROR関数や、RIGHT、LEFT、MID関数を組みあわせることで、表現の幅が広がります。

FIND関数とよく似た関数にSEARCH関数というものがあります。全角、半角を区別して検索するFIND関数に対して、SEARCH関数はそれらを区別せず、ワイルドカードも使用できるので、曖昧検索に適しているため、使い所は適切に見極めましょう。