Microsoft Excelで、文字列検索を行う際に使用する関数をご存知でしょうか?文字列検索を行える関数は大まかに4種類あるので、シーンに応じて使い分けを行いましょう。この記事では、Excelで文字列検索を行う関数をご紹介していきます。
Excelで文字列検索を行う関数
FIND関数
「FIND関数」では指定した文字列が開始位置から何番目にあるのかを返すことができます。FIND関数の書式は「=FIND(検索文字列,対象,開始位置)」です。
FIND関数では、英字の大文字と小文字の区別が付きます。後述するSEARCH関数では英字の大文字と小文字の区別が付かないので、大文字と小文字の区別を付けたいのであればFIND関数を使用しましょう。
FINDB関数
FIND関数は指定した文字列が開始位置から何番目にあるのかを返していましたが、「FINDB関数」では文字列が開始位置から「何バイト目」にあるのかを返します。
FINDB関数も、英字の大文字と小文字の区別ができますよ。
SEARCH関数
指定した文字列が開始位置から何番目にあるのかを返すことができる関数には「SEARCH関数」というものもあります。FIND関数との違いは「英字の大文字と小文字の区別が付かない」ことと「ワイルドカードを使用することができる」点が挙げられます。大文字と小文字の区別を付ける必要がない・ワイルドカードを使用したいという場合は、SEARCH関数を用いましょう。
引数の「検索文字列」ではワイルドカードを使用できます。ワイルドカードについては下記の通りとなります。これらのワイルドカードは、半角文字で入力しましょう。
- *:任意の長さの文字(1文字・複数文字と一致する文字列)を検索する。「あ*」
- ?:任意の1文字と一致する文字列を検索する。「あ?」
- ~:ワイルドカード扱いの「*」・「?」を含む文字列の検索をする際に使用する。「~?」
SEARCHB関数
SEARCHB関数も「FINDB関数」と同様に文字列が開始位置から「何バイト目」にあるのかを返す関数です。FINDB関数同様に指定した文字列で文字位置ではなくバイト数で計算して結果を返します。
使い分け
「FIND関数・FINDB関数」は英字の大文字と小文字の区別が付く・「SEARCH関数・SEARCH関数B」はワイルドカードを使用できるといった利点があります。ですので、使用するシーンによってFIND関数を使うかSEARCH関数を使うか決めて、文字数で検索するかバイト数で検索するかで「B」関数を使うかどうかの使い分けを行いましょう。