Excelで文字列検索を行う関数をご紹介!

Excelで文字列検索を行う関数をご紹介!

Microsoft Excelでは、セルにおいて文字列検索を行うことができる関数が複数種類あることをご存知でしょうか?ケースによって、使用する関数の使い分けを行ってみましょう。この記事では、Excelで文字列検索を行う関数をご紹介していきます。


目次[非表示]

  1. Excelで文字列検索を行う関数

Microsoft Excelで、文字列検索を行う際に使用する関数をご存知でしょうか?文字列検索を行える関数は大まかに4種類あるので、シーンに応じて使い分けを行いましょう。この記事では、Excelで文字列検索を行う関数をご紹介していきます。

Excelで文字列検索を行う関数

FIND関数

「FIND関数」では指定した文字列が開始位置から何番目にあるのかを返すことができます。FIND関数の書式は「=FIND(検索文字列,対象,開始位置)」です。

FIND関数を使用
この例ではB2セルの文字列「あかさたな」から「さ」の位置を抽出します。「=FIND("さ",B2)」と入力しましょう。
結果が出力された
「あかさたな」の中で「さ」は3番目になるため、結果は「3」と出力されていることが確認できますね。

FIND関数では、英字の大文字と小文字の区別が付きます。後述するSEARCH関数では英字の大文字と小文字の区別が付かないので、大文字と小文字の区別を付けたいのであればFIND関数を使用しましょう。

FINDB関数

FIND関数は指定した文字列が開始位置から何番目にあるのかを返していましたが、「FINDB関数」では文字列が開始位置から「何バイト目」にあるのかを返します。

FINDB関数
「FIND関数」の項目と同様に、B2セルに入力されている「あかさたな」の「さ」の位置を位置を抽出します。「=FINDB("さ",B2)」と入力しましょう。
FIND関数が表示された
「FIND関数」では文字数で文字の位置を返していますが、「FINDB関数」ではバイト数で計算しているため「あか」で4バイト・「さ」の時点で5バイト開始となるため「5」と計算されています。

FINDB関数も、英字の大文字と小文字の区別ができますよ。

SEARCH関数

指定した文字列が開始位置から何番目にあるのかを返すことができる関数には「SEARCH関数」というものもあります。FIND関数との違いは「英字の大文字と小文字の区別が付かない」ことと「ワイルドカードを使用することができる」点が挙げられます。大文字と小文字の区別を付ける必要がない・ワイルドカードを使用したいという場合は、SEARCH関数を用いましょう。

SEARCH関数
SEARCH関数の書式は「=SEARCH(検索文字列,対象,開始位置)」です。画像の例では「=SEARCH("か",B2)」と入力して、文字列から「か」の入力されている2番めを抽出することができています。

引数の「検索文字列」ではワイルドカードを使用できます。ワイルドカードについては下記の通りとなります。これらのワイルドカードは、半角文字で入力しましょう。

  • *:任意の長さの文字(1文字・複数文字と一致する文字列)を検索する。「あ*」
  • ?:任意の1文字と一致する文字列を検索する。「あ?」
  • ~:ワイルドカード扱いの「*」・「?」を含む文字列の検索をする際に使用する。「~?」

SEARCHB関数

SEARCHB関数も「FINDB関数」と同様に文字列が開始位置から「何バイト目」にあるのかを返す関数です。FINDB関数同様に指定した文字列で文字位置ではなくバイト数で計算して結果を返します。

使い分け

「FIND関数・FINDB関数」は英字の大文字と小文字の区別が付く・「SEARCH関数・SEARCH関数B」はワイルドカードを使用できるといった利点があります。ですので、使用するシーンによってFIND関数を使うかSEARCH関数を使うか決めて、文字数で検索するかバイト数で検索するかで「B」関数を使うかどうかの使い分けを行いましょう。


関連記事