【エクセル】文字列探索に便利なFIND関数の使い方!#VALUE!の対処まで

この記事では、エクセル上で文字列の存在を探索するのに便利なFIND関数の使い方をご紹介していきます。

 

また、FIND関数を使ったときによく出るエラー(#VALUE!)への対象方法までご紹介していきます。

 

画像を使って詳細説明していきますので、ぜひ最後までご覧ください。

 

それではさっそくやっていきましょう。

スポンサーリンク

FIND関数とは

まずはじめにFIND関数がどのような関数なのかをご紹介していきます。

FIND関数とは、指定した文字列が探索対象の文字列内の何文字目に存在しているかを算出する関数です。

 

たとえばこのブログのドメイン名である

【higashisalary.com】の中から【salary】という文字をFIND関数で探索させた場合、8という数字を出力してくれます。

(salaryの前にはhigashiという7文字があるのでsalaryは8文字目ですからね。)

 

また、指定した文字列が探索対象の文字列の中になかった場合は、#VALUE!という結果が出力されます。

この場合の対象方法についても後程紹介していきます。

 

スポンサーリンク

FIND関数の使い方

次はFIND関数の使い方に移ります。

 

FIND関数の使い方
=FIND(探したい文字列, 検索される対象の文字列)

 

もちろんここで指定する文字列は、以下のように”” で囲って直接入力しても良いですし、セルを参照してもどちらでもOKです。

〇文字列を直接指定する場合

=FIND(“higashisalary.com”, “salary”)

 

〇セルを参照させる場合

=FIND(A1, A2)

A1:探したい文字列

A2:検索される対象の文字列

 

スポンサーリンク

FIND関数の使用例

使い方がわかってきたところで、ここからは実際の使用例を見ていきましょう。

今回は以下のような文字列をセルに入力した状態でスタートです。

(先ほどの例と同じですね。)

 

さっそくこれらの文字列に対してFIND関数を適用してみましょう。

 

FIND関数を使うには以下のように数式を入力します。

(検索したい文字が最初、探索対象が後ですね。間違えないようにしましょう。)

 

以下が実行結果です。

先ほど言ったとおり、salaryはhigashiという7文字の後に来ますので、FIND関数を適用すると8が出力されました。

使い方は非常に簡単ですね。

 

念のためA4セルに別の文字を入れてみましょう。

次はcomという文字を入れてみました。

comの前には14文字あるので結果は15が出力されていますね。

 

次は検索したい文字列がない場合はどうなるのかを見てみましょう。

次はA4セルにtestという文字を入れてみましょう。

するとこのように#VALUE!という結果が出力されます。

検索文字がない場合はこのような結果になります。

(自動で0とかが出力されるようになっていれば便利なのに・・・)

スポンサーリンク

探索文字がない場合のエラー(#VALUE!)対象方法

ここまででFIND関数の使い方はわかったと思います。

最後は先ほどの探索文字がない場合の#VALUE!が出ないようにする対処方法をご紹介していこうと思います。

 

今回は探索文字がない場合は0、ある場合は通常のFIND関数の結果が出力されるように設定してみましょう。

 

2つのパターンにわけて解説します。

さっそくですが、まずはつ目の方法です。

〇数式入力画面

〇算出結果(検索対象がない場合)

〇算出結果(検索対象がある場合)

 

やっていることを少し解説しておきます。

今回はISERROR関数という結果がエラーかどうかを判定してくれる関数と、IF関数を組み合わせることで対処しています。

 

要はISERROR関数でエラーがでた場合は0を出力、そうでない場合は通常のFIND関数の結果を出力するようにしているだけです。

 

数式を打つのがめんどくさい人のために、コピー用の数式を記述しておきます。

=IF(ISERROR(FIND(A1,A2))=TRUE,0,FIND(A1,A2))

エラー時の出力内容(今回は0の部分)、A1,、A2の部分はあたなの状況に応じて適宜変更するようにしましょう。

 

 

次に2つ目の方法をご紹介します。

〇数式入力画面

〇算出結果(検索対象がない場合)

〇算出結果(検索対象がある場合)

この方法では先ほどのIF関数とISERROR関数を組み合わせたようなIFERROR関数を使うことで対処しています。

やっていることは基本的に先ほどとほとんど同じですね。

 

これもコピー用の数式を載せておきます。

=IFERROR(FIND(A1,A2),0)

エラー時の出力内容(今回は0の部分)、A1,、A2の部分はあたなの状況に応じて適宜変更するようにしましょう。

こっちの方が簡単ですが、最初の方がいろいろと応用はききやすいはずです。

 

状況に応じて適宜使い分けるようにしましょう。

スポンサーリンク

おわりに

というわけで今回は文字列探索時に便利なFIND関数の使い方をご紹介しました。

使いこなせればいろいろなことができるようになりますので、ぜひマスターしておきましょう。

 

なお、VBA上でFIND関数のようなことをする場合は別途Instr関数というものが準備されています。

その使い方については以下の記事で紹介していますので、興味があればご覧ください。

【VBA】文字列探索の際に便利なInstr関数の使い方を詳細解説!

 

このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。

⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。

↓ 応援ボタン

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました