【Excel】指定した検索文字列が最初に出てくる位置を取得する方法(SEARCH関数)

ExcelのSEARCH関数の使い方について具体例を交えて説明します。

書式

SEARCH(検索文字列,対象,[開始位置])

※ []内の引数は任意の項目です。

関数と変数の説明

対象の文字列の開始位置から検索文字列の場所を調べ、その検索文字列のある最初の文字数を返します。該当する検索文字列が存在しないと「#VALUE!」を返します。

  • 検索文字列(必須項目):検索したい文字列です。
  • 対象(必須項目):検索文字列を含む検索する対象となる文字列です。
  • 開始位置(任意項目):検索を開始する位置を指定します。0以下を指定すると「#VALUE!」を返します。
  • 大文字と小文字は区別せず、検索します。
  • 検索文字列にワイルドカードが利用できます。

似た動作をするFIND関数は大文字と小文字を区別し、ワイルドカードは使えません。

SEARCH関数は先頭からの「文字数」が返ってきます。バイト数で取得したい場合はSEARCHB関数を利用します。通常はプログラマブルなお仕事でない限りSEARCH関数で問題ありません。

使用例

 

A B C
1 対象文字列
2 マイクロソフトはソフトウェア会社です。
3
4 取得したい内容 出力結果 計算式
5 1.「ソフト」の位置を知りたいとき([開始位置]変数省略のとき) 5 =SEARCH(“ソフト”,A2)
6 2.「ソフト」の位置を知りたいとき([開始位置]変数1のとき) 5 =SEARCH(“ソフト”,A2,1)
7 3.6文字目以降に出現する「ソフト」の位置を知りたいとき 9 =SEARCH(“ソフト”,A2,6)
8 4.該当する文字が存在しないとき #VALUE! =SEARCH(“アップル”,A2,6)
9 5.[開始位置]変数が0以下のとき #VALUE! =SEARCH(“ソフト”,A3,0)

「1.「ソフト」の位置を知りたいとき([開始位置]変数省略のとき)」のケースは開始位置変数を省略したときの出力結果です。開始位置が省略されあときは1で計算されるため、「2.「ソフト」の位置を知りたいとき([開始位置]変数1のとき)」と同じ結果になります。「ソフト」は5文字目に出現するため、5が返ってきます。

「3.6文字目以降に出現する「ソフト」の位置を知りたいとき」のケースは開始位置が6からとなっているので、最初の5文字は無視して、6文字目からとなる「フトはソフトウェア会社です。」から「ソフト」の位置の調べます。そうすると「ソフトウェア会社です」の「ソフト」が該当します。そのため、9が返ってきます。

「4.該当する文字が存在しないとき」のケースは対象文字列に「アップル」は存在しません。そのときは「#VALUE!」が返ってきます。

「5.[開始位置]変数が0以下のとき」のケースは開始位置が0と誤った値です。その場合は「#VALUE!」が返ってきます。

SEARCH関数と他の関数の組み合わせで便利に使う方法

類似関数

  • SEARCHB関数(バイト数を返すのではなく、文字数を返す関数です。)

コメント

タイトルとURLをコピーしました