Office Hack

ExcelのFIND関数の使い方|文字列が最初に現れる位置を検索

  • Release

この記事ではExcelのFIND関数の使い方についてご説明します。

FIND関数は様々な関数との組み合わせに適した関数です。

RIGHT関数やLEFT関数等と組み合わせることで、住所録から市の名前や県名のみを抽出したりすることが出来ます。

以下では、FIND関数で検索の開始位置を指定する方法や複数条件を指定する方法等についてもご紹介しています。

FIND関数とは?

結果が表示される

FIND(ファインド)関数とは、対象の文字列の中で探したい文字が最初に何文字目に現れるのかを検索できる関数です。

上の画像は、FIND関数を使った例でC2セルに「A2セルの"埼玉県さいたま市"の中で"県"の文字は初めから何番目に出てくるか」という数式を入力しています。

FIND関数は単独で使うことは少なく、他の関数と組み合わせて使う場合が多いです。

FIND関数の用法

FIND関数の用法には、以下のような例があります。

  • 複数の関数を組み合わせた数式から対象の関数が何番目に出てくるかを検索する
  • (LEFT関数と組み合わせて)社員名簿から社員名の名字のみ抽出する
  • (RIGHT関数とLEN関数と組み合わせて)住所録から市の名前を抽出する

FIND関数の書式

まずは、FIND関数の書式を確認していきましょう。

FIND関数の書式

FIND関数の書式は「=FIND(検索文字列,対象,[開始位置])」のように引数を3つ使用します。

引数を1つずつ確認していきましょう。

※引数(ひきすう)とは、Excelの関数を使用する際に必要な情報です。関数が結果を返すための判断材料とイメージしましょう。関数名の後の括弧「()」内に入力します。

第1引数(検索文字列)

FIND関数の文字列の引数

1番目の引数は「検索文字列」です。この引数は必須です。どんな文字を検索したいのかを指定します。

例えば、住所録から「県」の文字を検索したい場合は「検索文字列」の引数に「"県"」と入力します。

第2引数(対象)

対象の引数

2番目の引数は「対象」です。この引数は必須です。検索対象となる文字列をセル番地か文字列で指定します。

例えば、「埼玉県さいたま市」という文字列から「県」の文字を検索したい場合は、「埼玉県さいたま市」が検索対象となります。

第3引数([開始位置])

開始位置の引数

3番目の引数は「開始位置」です。この引数は省略することが出来ます。

開始位置を指定することで、開始位置以降に初めて出てくる文字列が全体で何文字目か、が検索できます。

例えば、「大阪府大阪市」で「3文字目から数えて何文字目に最初の"阪"が出てくるか」を調べたい場合は、開始位置として「3」を指定します。

開始位置の指定方法については、下記「開始位置の指定方法」セクションで詳しくご説明しています。

FIND関数の使い方

FIND関数の様々な使い方をご紹介します。

FIND関数の基本的な使い方

FIND関数を入力

上の画像のような表を準備します。

今回は、A2セルの「埼玉県さいたま市」の文字列から「県」が文字列の最初から何文字目にあるかをFIND関数を使って調べます。

まずは、FIND関数を入力します。

【任意のセル(例:C2セル)】を選択し、『=FIND(』と入力します。

文字を入力

次に、検索文字列の引数を設定します。

「=FIND(」に続いて『"県",』と入力します。

対象セルを入力

次に、文字列の引数を設定します。

「"県",」に続いて『A2)』と入力し、Enterを押します。

結果が出る

「埼玉県さいたま市」の中で「県」は最初から3番目にあるため、C2セルに「3」と表示されました。

これで、FIND関数で対象の文字が文字列の何番目にあるかを検索することが出来ました。

開始位置の指定方法

開始位置の引数を指定する方法は以下の通りです。

関数を入力

上の画像のような表を準備します。

今回は、A2セルの「大阪府大阪市」の文字から「3文字目以降に初めて出てくる"阪"の文字が全体の何番目にあるか」を検索します。

まずは、FIND関数を入力します。

【任意のセル(例:C2セル)】を選択し、『=FIND(』と入力します。

文字を入力する

次に、検索文字列の引数を設定します。

「=FIND(」に続いて『"阪",』と入力します。

セルを入力する

次に、文字列の引数を設定します。

「"阪",」に続いて『A2,』と入力します。

開始位置を設定する

次に、開始位置の引数を設定します。

全体の3文字目以降に初めて出てくる「阪」の文字を検索したいので、「A2,」に続いて『3)』と入力し、Enterを押します。

結果が返される

C2セルに「5」と表示されました。

今回は3文字目以降に初めて出てくる「阪」の文字を検索したため「2」ではなく「5」という結果になっています。

これで、FIND関数で開始位置を設定することが出来ました。

複数条件を指定する

FIND関数では通常複数の検索文字を指定することはできません。

IFERROR関数とFIND関数を組み合わせることで複数条件を指定することが可能ですが、あまりにたくさんの検索文字列を指定すると数式が長くなってしまい扱いづらくなる点に注意しましょう。

IFERROR関数の書式やIFERROR関数と他の関数との組み合わせ方等については以下の記事でご説明しています。

IFERROR関数を入力する

今回は上の画像のような表を使って、文字列の中に「道」「県」「府」の文字がそれぞれ何文字目にあるかをFIND関数とIFERROR関数を組み合わせて検索します。

まずはIFERROR関数を入力します。

IFERROR関数の書式は、「=IFERROR(値,エラーの場合の値)」です。

【任意のセル(例:C2セル)】を選択し、『=IFERROR(』と入力します。

FIND関数を入力する

次に、FIND関数を使って、IFERROR関数の「値」の引数を設定します。

まずは、「"道"が何文字目にあるか」というFIND関数を作ります。

「=IFERROR」に続いて『FIND("道",A2),』と入力します。

IFERROR関数とFIND関数を入力する

次に、IFERROR関数の「エラーの場合の値」の引数をさらにIFERROR関数で囲って作成します。

「"県"が何文字目にあるか」というFIND関数を作成します。

「FIND("道",A2),」に続いて『IFERROR(FIND("県",A2),』と入力します。

このようにIFERROR関数のエラーの場合の値にIFERROR関数を重ねていくことで数式を繋げていきます。

IFERROR関数を入力する

さらに、「"県"が何文字目にあるか」というFIND関数を囲ったIFERROR関数の「エラーの場合の値」の引数に、「"府"が何文字目にあるか」というFIND関数を入力します。

「IFERROR(FIND("県",A2),」に続いて『IFERROR(FIND("府",A2),』と入力します。

ダブルクォーテーションを入力する

これで3つの選択肢をすべて入力できました。

さらに、どれにも当てはまらない場合はC列のセルを空白にしたいので、「IFERROR(FIND("府",A2),」に続いて『"")))』と入力し、Enterを押します。

オートフィルでコピーする

数式をオートフィルでコピーします。

【関数が入ったセル(例:C2)】を選択し、セルの右下にある「■(フィルハンドル)」を下方向へ【ドラッグ】します。

式が完成する

これで、複数条件を設定した数式が完成しました。

「道」「県」「府」の文字がそれぞれ何文字目に出てくるかがそれぞれC列のセルに表示されています。

また、A5セルの「とうきょう」には該当の文字がないためC5セルが空白になっています。

左から空白の直前まで抽出する

抽出が完了する

FIND関数とLEFT関数を組み合わせることで、空白の直前までの文字を抽出することが出来ます。

上の画像は、FIND関数とLEFT関数を組み合わせて都道府県名のみを抽出できるように関数を作成した例です。

LEFT関数の書式や使い方、他の関数と組み合わせる方法については以下の記事をご参照ください。

FIND関数とLEFT関数を組み合わせる方法は以下の通りです。

LEFT関数を入力する

上の画像のように、A列に都道府県名と市の名前の間に全角の空白が入った表を準備します。

まずは、LEFT関数から入力します。

LEFT関数の書式は、「=LEFT(文字列,[文字数])」です。

【任意のセル(例:C2セル)】を選択し、『=LEFT(』と入力します。

文字列の引数を設定する

次に、LEFT関数の文字列の引数を設定します。

「=LEFT(」に続いて『A2,』と入力します。

FIND関数を入力する

次に、LEFT関数の文字数の引数として、FIND関数を入力します。

「A2,」に続いて『FIND(』と入力します。

全角の空白を入力する

次に、FIND関数の検索文字列の引数を設定します。

今回は「全角の空白」が前から何文字目にあるかを検索したいので、「FIND(」に続いて『" ",』と入力します。

対象の引数を選択する

次に、FIND関数の対象の引数を設定します。

「" ",」に続いて『A2,』と入力します。

開始位置の引数を設定する

次に、FIND関数の開始位置の引数を設定します。

今回は最初から数えるので「1」と入力します。

「A2,」に続いて『1))』と入力し、Enterを押します。

最初から数える場合は、省略しても構いません。

オートフィルでコピー

数式をオートフィルでコピーします。

【関数が入ったセル(例:C2)】を選択し、セルの右下にある「■(フィルハンドル)」を下方向へ【ドラッグ】します。

抽出が完了する

これで、FIND関数とLEFT関数を組み合わせることで、空白の直前までの文字を抽出することが出来ました。

RIGHT関数とLEN関数と組み合わせる

表が完成する

上の画像は、FIND関数とRIGHT関数とLEN関数を組み合わせて空白の後の「市の名前」のみを抽出した例です。

今回は上の画像の抽出方法を例に挙げて、FIND関数とRIGHT関数とLEN関数を組み合わせる方法をご紹介します。

RIGHT関数は文字列の右から指定した数の文字を取り出すことができる関数です。書式や使い方については以下の記事をご参照ください。

LEN関数は対象のセルに入力されている文字列の文字数を抽出できる関数です。書式や使い方については以下の記事をご参照ください。

RIGHT関数を入力する

上の画像のような表を準備します。

まずはRIGHT関数を入力します。

RIGHT関数の書式は、「=RIGHT(文字列,[文字数])」です。

【任意のセル(例:C2セル)】を選択し、『=RIGHT(』と入力します。

文字列の引数を入力

次に、RIGHT関数の文字列の引数を設定します。

「=RIGHT(」に続いて『A2,』と入力します。

LEN関数を入力

次に、RIGHT関数の文字数の引数をLEN関数とFIND関数を組み合わせて設定します。

まずはLEN関数を入力します。

LEN関数の書式は、「=LEN(文字列)」です。

「A2,」に続いて『LEN(A2)』と入力します。

LEN関数からFIND関数の値を引く

次に、FIND関数を入力します。

LEN関数で全体の文字数をカウントしたので、その値からFIND関数で空白の位置が何文字目にあるかを引いて、空白から右の文字を抽出します。

「LEN(A2)」に続いて『-FIND(" ",A2))』と入力し、Enterを押します。

オートフィルでコピーする

数式をオートフィルでコピーします。

【関数が入ったセル(例:C2)】を選択し、セルの右下にある「■(フィルハンドル)」を下方向へ【ドラッグ】します。

表が完成する

これで、FIND関数とRIGHT関数とLEN関数を使って空白の後の市の名前のみを抽出することが出来ました。

ワイルドカードを利用する

FIND関数ではあいまい検索が可能になる「*(ワイルドカード)」を使用することはできません。

ただし、同じような機能を持つ関数であるSEARCH関数であればワイルドカードを使って対象の文字が何文字目に出てくるか検索することが出来ます。

方法の詳細は以下の通りです。

SEARCH関数を入力

今回は上の画像のような表を準備して、A2セルの「大阪府大阪市」から「府」もしくは「市」の文字が何文字目に出てくるかを検索します。

ワイルドカードとしてBセルに「府*市」と入力しておきます。

SEARCH関数の書式は「=SEARCH(検索文字列,対象,[開始位置])」です。

【任意のセル(例:D2セル)】を選択し、『=SEARCH(』と入力します。

引数を設定する

次に、SEARCH関数の検索文字列の引数を設定します。

「府」か「市」を検索したいので「=SEARCH(」に続いて『B2,』と入力します。

対象の引数を設定する

次に、SEARCH関数の対象の引数を設定します。

「B2,」に続いて『A2)』と入力し、Enterを押します。

結果が表示される

C2セルに「3」と表示されました。

これで、SEARCH関数でワイルドカードを使って文字列を検索することが出来ました。

#VALUE!エラーの解消法

FIND関数では対象の文字列の中に検索したい文字が見つからない場合、#VALUE!エラーが表示されます。

違う文字を入力する

例えば、上の画像のような表を準備してA2セルの「大阪府大阪市」から「坂」の字を検索してみます。

【C2セル】を選択し、『=FIND("坂",A2)』と入力してEnterを押します。

エラーが表示される

「大阪府大阪市」に「坂」の文字はないため、#VALUE!エラーが出てしまいました。

エラーを非表示にしたい場合は「IFERROR関数」とFIND関数を組み合わせて数式を作りましょう。

方法の詳細は以下の通りです。

IFERROR関数と組み合わせる

今回はC2セルに入力するFIND関数でもしも#VALUE!エラーが出た場合は「該当なし」と表示させる数式を作成します。

【C2セル】を選択し、『=IFERROR(FIND("坂",A2),"該当なし")』と入力してEnterを押します。

エラーが非表示になる

数式が完成し、C2セルに「該当なし」と表示されました。

これで、#VALUE!エラーを非表示にする設定が出来ました。

[Excel 関数 文字列操作]の関連記事

よろしければ参考にならなかった点をお聞かせください

CAPTCHA


Page Top