このトピックは、FIND/FINDB および SEARCH/SEARCHB 関数で発生する #VALUE! エラーの最も一般的なシナリオで役立ちます。
FIND および SEARCH 関数に関する注意事項
-
FIND 関数と SEARCH 関数はよく似ています。 どちらも同じように機能し、あるテキスト文字列内の文字または別のテキスト文字列を検索します。 これら 2 つの関数の違いは、FIND では大文字と小文字が区別されるのに対して、SEARCH では大文字と小文字が区別されないことです。 したがって、テキスト文字列の大文字と小文字が一致する必要がない場合は、SEARCH を使用します。
-
指定した文字数に基づいて文字列を返す関数が必要な場合は、FIND と共に MID 関数を使用します。 MID と FIND の組み合わせの使用に関する情報と例については、FIND のヘルプ トピックを参照してください。
-
これらの関数の構文 (検索文字列, 対象, [開始位置]) は同じです。 つまり、構文は "何を検索するか, どこで検索するか, どの位置から開始するか" を意味します。
問題: 対象文字列に検索文字列引数の値が見つからない
関数が指定されたテキスト文字列でテキストを見つけられない場合、#VALUE! エラーはスローされます。
たとえば、次のような関数があるとします。
-
=FIND("gloves","Gloves (Youth)",1)
この場合、文字列に "gloves" と一致するものはありませんが、"Gloves" があるため、#VALUE! エラーはスローされます。 繰り返しますが、FIND では大文字と小文字が区別されるため、検索文字列の値が対象引数の文字列で完全に一致するようにしてください。
ただし、以下の SEARCH 関数では、大文字と小文字が区別されないため、1 という値を返します。
-
=SEARCH("gloves","Gloves (Youth)",1)
解決策: 必要に応じて構文を修正します。
問題:開始位置引数がゼロ (0) に設定される
start_num引数は省略可能な引数であり、省略した場合、既定値は 1 と見なされます。 ただし、引数が構文に存在し、値が 0 に設定されている場合は、#VALUE が表示されます。 エラーを返します。
解決策: start_num引数が不要な場合は削除するか、適切な値に設定します。
問題: 開始位置引数が対象引数を上回っている
たとえば、次のような関数があるとします。
-
=FIND("s","Functions and formulas",25)
この場合、25 番目の文字 (開始位置) の "Functions and formulas" 文字列 (対象) の "s" を検索しますが、文字列には 22 文字しかないため、#VALUE! エラーが返されます。
ヒント: テキスト文字列の文字の合計数を確認するには、LEN 関数を使用します。
解決策: 必要に応じて開始番号を修正します。
補足説明
Excel Tech Communityで、いつでも専門家に質問できます。また、コミュニティでは、サポートを受けられます。