この記事ではExcelのFIND関数を利用した際に、対象の文字が見つからない場合の対処法をご紹介しています。
まず初めにFIND関数の構文と使用例、最後に補足として検索対象の文字が見つからない場合のエラー回避方法をご紹介しています。
FIND関数で文字が見つからない場合のエラー回避のみが知りたい場合は目次で対象までスキップしてください。
FIND関数の構文
(構文)
FIND (find_text, within_text,[start_num])
(参照)https://docs.microsoft.com/ja-jp/office/client-developer/visio/find-function
各パラメータの説明は下記の通りです。
名前 | 必須 / オプション | データ型 | 説明 |
---|---|---|---|
find_text | 必須 | String | 検索文字列を指定します。 |
format | 必須 | String | 検索対象となる文字列を指定します。 |
start_num | オプション | 数値 | 検索を開始する文字の位置を指定します。初期値は1です。 |
FIND関数の使用例
FIND関数を使用して文字列を検索する使用例です。
ここではエクセルシートのセルA2にFIND関数を入力しています。
ABという文字列を隣のセルB2から探して、最初に見つかった位置を取得しています。
=FIND("AB",B2)
取得結果は下記の通り 6 となります。
FIND関数は大文字と小文字を別の文字として判定します。そのため検索文字を AB から 小文字の ab に変更した場合、下記の様に #VALUE エラーとなります。
FIND関数で見つからない場合の#VALUE! エラー回避方法
FIND関数を利用して文字列が見つからない場合は #VALUE!エラーが返却されます。
今回は #VALUE!エラーを回避する方法として IFERROR 関数を利用する方法をご紹介します。
IFERROR関数は、エラー判定専用のIF関数になっており、#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?、#NULL!などのエラーとなった場合に、表示する内容を指定する事ができます。
エラーとならない場合は、判定に利用した式の結果がそのまま表示されるようになっています。
具体的な使用例は下記の通りです。
=IFERROR(FIND("ab",B1),"対象なし")
FIND関数で ab という文字列を セルB1に対して検索していますが、文字列が見つからない為、”対象なし”と表示されています。
IFERROR関数と同じようなことをIF関数で表すと下記の様に記載することもできます。
=IF(ISERROR(FIND("ab",B2)),"対象なし",FIND("ab",B2))
ISERROR関数も、検査対象が#N/A, #VALUE!,#REF!,#DIV/0!,#NUM!,#NAME?,#NULL! の場合に TRUE を返却します。
この仕組みを利用し、FIND関数で値が見つからない #VALUE!エラーの時は、”対象なし”を表示するようにIF関数で分岐処理をしています。
エラーとならない場合は、再度同じFIND関数で値を取得しています。
IF関数とISERROR関数を組み合わせて同じ結果が得られますが、よりシンプルで解りやすいIFERROR関数の利用がお勧めです。
まとめ
Find関数で見つからない場合は、IFERROR関数でエラーの時の戻り値を指定できる。