【Excel】FIND関数とSEARCH関数で簡単に文字列検索
本ページでは、Excelで利用できる文字列検索関数、FIND/FINDB と SEARCH/SEARCHB について詳しく解説します。
それぞれの関数の基本的な使い方、違い、実際の例を交えて、初心者でも分かりやすいように説明していきます。
目次
概要
Excelには文字列内で特定の文字列や文字を検索するための関数がいくつか存在します。
主に使用されるのが、FIND と SEARCH という関数です。
これらの関数には、マルチバイト文字に対応するためのバージョンとして、FINDB と SEARCHB も用意されています。
基本的な目的は、指定した文字列が対象のテキスト内のどの位置にあるかを返すことです。
ここでの「位置」とは、文字列の最初の文字を1とする数値で表されます。
また、文字が見つからない場合はエラーが返されるため、エラーチェックも重要です。
FIND/FINDB の使い方
FIND 関数は、大文字と小文字を区別して文字列を検索します。
書式は以下の通りです。
=FIND(検索文字列, 対象文字列, [開始位置])
「検索文字列」には探したい文字や文字列を指定し、「対象文字列」にはその文字列が含まれるセルを指定します。
例えば、セルA1に「Excel Function」と入力されているとします。
次の式は、「F」を検索する例です。
=FIND(“F”, A1)
結果は8となります。これは「F」が8番目の文字だからです。
また、FINDB はFINDと同様の機能を持ちますが、文字数ではなくバイト数で計算します。
特に全角文字やマルチバイト文字を扱う場合に有用です。
例として、セルB1に「ABCD」と全角文字が入力されている場合、
=FINDB(“C”, B1)
とすると、全角文字は通常2バイトとカウントされるため、結果は5となります。
SEARCH/SEARCHB の使い方
SEARCH 関数は、FINDと似ていますが、大文字と小文字の区別を行いません。
書式は以下の通りです。
=SEARCH(検索文字列, 対象文字列, [開始位置])
例えば、セルC1に「Hello World」と入力されている場合、
=SEARCH(“w”, C1)
とすると、結果は7となります。これは「W」と「w」を同一視するためです。
さらに、SEARCH関数はワイルドカード(「*」や「?」)を使用することができます。
例えば、次のように使用できます。
=SEARCH(“W*ld”, C1)
この場合、「W」で始まり「ld」で終わる文字列を検索し、結果は7となります。
SEARCHB も同様に動作しますが、バイト数での計算が行われます。
マルチバイト文字が含まれる場合に、より正確な位置が得られることがあります。
関数間の違い
FINDとSEARCHの主な違いは、次の点にあります。
まず、FINDは大文字と小文字を区別するため、正確な文字列の一致が必要です。
一方、SEARCHは大文字と小文字を区別せず、柔軟な検索が可能です。
また、SEARCH関数はワイルドカードを使用できる点も特徴です。
FINDBとSEARCHBは、それぞれFINDとSEARCHのバイト版であり、全角文字やマルチバイト文字の取り扱いに違いがあります。
通常の英数字のみのデータの場合は、FINDとSEARCHでほぼ同じ結果が得られますが、
日本語などの全角文字が含まれる場合は、FINDBとSEARCHBの使用を検討してください。
なお、どの関数も検索対象の文字列が見つからない場合、エラー値「#VALUE!」が返されます。
実際の例
ここでは、各関数の具体的な使用例をいくつか紹介します。
例1: セルD1に「Data Analysis」という文字列があるとします。
=FIND(“A”, D1)
この式は、大文字の「A」を検索するため、結果は6となります。
例2: セルE1に「data analysis」と入力されている場合、
=FIND(“D”, E1)
はエラーになります。なぜなら、FINDは大文字と小文字を区別するためです。
例3: 上記と同じセルE1に対して、
=SEARCH(“D”, E1)
とすると、結果は1となります。SEARCHは大文字小文字を区別しないためです。
例4: セルF1に「サンプルデータ」が入力されているとします。
=FINDB(“デ”, F1)
この場合、全角文字を考慮してバイト数で計算されるため、結果は5となる可能性があります。
例5: セルG1に「Excel関数の解説」という文字列があり、
=SEARCH(“関数*”, G1)
とすると、「関数」で始まり任意の文字列が続くパターンが検索され、結果は6となります。
これらの例は、各関数の特徴と違いを理解するのに役立ちます。
利用時の注意点
文字列検索関数を使用する際には、いくつか注意すべき点があります。
まず、開始位置の指定です。開始位置を変更することで、部分的な検索が可能になります。
例えば、文字列の途中から検索したい場合は、開始位置に該当する数値を指定します。
また、検索対象の文字列にスペースや特殊文字が含まれる場合、正確に一致するか確認する必要があります。
さらに、関数がエラーを返す場合は、エラーチェック用のIFERROR関数を組み合わせると便利です。
例えば、
=IFERROR(FIND(“X”, A1), “見つかりません”)
とすることで、文字が見つからなかった場合に「見つかりません」と表示させることができます。
また、ワイルドカードを使用する場合は、SEARCH関数を活用すると柔軟な検索が可能です。
各関数の特性を理解し、適切な場面で使い分けることが、エクセル作業の効率化に繋がります。
まとめ
今回の解説では、Excelの文字列検索関数であるFIND/FINDBとSEARCH/SEARCHBについて説明しました。
FINDは大文字小文字を区別し、厳密な検索が必要な場合に使用します。
一方、SEARCHは大文字小文字を区別せず、ワイルドカードも使えるため柔軟な検索が可能です。
また、FINDBとSEARCHBは、マルチバイト文字を含むデータに対して正確な位置を返すために使用されます。
それぞれの関数の使い分けと、開始位置やエラー処理の工夫により、Excelでのデータ操作がより効果的に行えるようになります。
本解説を通じて、Excelでの文字列検索の基礎をしっかりと理解していただけたら幸いです。
ぜひ、実際のシートで試してみて、各関数の動作を確認してください。
Excelの豊富な機能を活用して、より効率的な作業環境を作り上げましょう。
ここまで、Excelの文字列検索関数について詳しく説明してきましたが、疑問点やさらに深い使い方については、公式ドキュメントなども参考にしてください。
各関数の特徴を理解することで、さまざまな場面で役立つ知識となるでしょう。
今回の解説が、皆さんのExcelスキル向上に寄与することを願っています。
また、他のExcel関数との組み合わせによって、より複雑なデータ操作や分析も可能となります。
ぜひ、今後の作業に役立ててください。
以上で、Excelの文字列検索関数に関する解説を終了します。