Excel関数入門:SEARCH関数の使い方【文字列の位置を検索する】

テキストの中から「特定の文字がどこにあるか」を調べたい場面は、Excelではよくあります。
たとえば、商品コードの一部を検索したり、文章の中に特定のキーワードが含まれているか判定したいときなどです。

そんなときに役立つのが SEARCH関数 です。
指定した文字列が、どの位置に現れるかを数字で返してくれるため、
文字列操作やデータ抽出の下準備として非常に便利な関数です。

この記事では、SEARCH関数の基本的な使い方から実務で役立つ応用例まで、わかりやすく解説します。


PR

SEARCH関数とは?

SEARCH関数は、指定した文字列の中で検索文字列が最初に現れる位置を返す関数です。

  • 位置は1文字目を1として数えます。
  • 大文字と小文字を区別しません。

書式

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

  • 検索文字列:探したい文字列。
  • 対象文字列:検索対象となるセルや文字列。
  • 開始位置(省略可):検索を始める位置。省略時は1文字目から検索。

SEARCH関数の使い方

例 1:文字列の中から特定の文字の位置を調べる

SEARCH関数は、文字列の中で「指定した語句がどこに現れるか」を調べて、
その開始位置を返す関数です。

たとえば、セルD4の結果が 6 になるのは、

「Excel関数を学ぶ」
1文字目:E
2文字目:x
3文字目:c
4文字目:e
5文字目:l
6文字目:関 ←ここから「関数」が始まるため

という仕組みです。

特徴とポイント
  • 大文字・小文字を区別しない
    → SEARCH(“p”, “apple”) も SEARCH(“P”, “apple”) も 2 が返ります。
  • 見つからないとエラー(#VALUE!)
    → SEARCH(“検査”, “パソコン検定”) → 見つからないため #VALUE!

例 2:ワイルドカードの使い方

SEARCH関数では、次の2つのワイルドカードを使って柔軟に検索できます👇

ワイルドカード
  • *(アスタリスク) … 任意の長さの文字列
  • ?(クエスチョン) … 任意の1文字
=SEARCH("検*","パソコン検定")

と入力すると、検索パターン「検*」は「検」の後にどんな文字が続いてもよい
という意味になるため、「検定」の「検」に一致します。

その結果、SEARCH関数は 「パソコン検定」の5文字目に一致が見つかったと判断し、返り値は 5 になります。

SEARCH関数とFIND関数の違い

文字列の位置を検索する関数にはSEARCH関数とFIND関数の2種類がありますが、
最大の違いは大文字・小文字の区別とワイルドカードの使用可否です。

SEARCH関数とFIND関数の違い
  • SEARCH関数:大文字・小文字を区別せず、ワイルドカード(*?)も利用可能
  • FIND関数:大文字・小文字を区別し、ワイルドカードは使用不可

このように、SEARCH関数は柔軟な検索が可能で、FIND関数は厳密な検索に向いています


注意点

  1. 大文字・小文字を区別しない
    区別したい場合はFIND関数を使います。
  2. 検索文字列がない場合はエラー
    見つからないと#VALUE!エラーになります。
  3. 開始位置を指定可能
    複数回出現する文字の2回目以降を検索できます。

関連関数

FIND関数文字列の位置を検索(大文字・小文字を区別)
SEARCHB関数バイト単位で位置を検索
MID関数指定位置から文字列を取り出す

まとめ

SEARCH関数は、文字列の中から特定の語句が「どの位置に現れるか」を調べるための便利な関数です。
大文字・小文字を区別しないため扱いやすく、ワイルドカードにも対応しているため、商品名やメールアドレス、文章データの検索など幅広いシーンで活躍します。

部分一致検索や柔軟な文字列チェックを行いたいときに、SEARCH関数を覚えておくと作業効率がぐっと上がります。
文字列操作の基本として、ぜひ活用してみてください。