- 更新日 : 2026年3月18日
SEARCH関数の使い方とは?文字列検索の基本から応用まで
ExcelのSEARCH関数とは、指定した文字列が別の文字列の中で何文字目から始まるかを調べる関数です。大文字・小文字を区別せずに検索できるため、キーワードの含有チェックや、文字列の一部を抽出する処理に適しています。
たとえば、「このセルに特定の語句が含まれているか?」「区切り文字の後ろを取り出したい」といったシーンで活用できます。
本記事では、SEARCH関数の基本構文から実践的な活用例までを網羅し、他の文字列関数(LEFT、MID、IFなど)との組み合わせや、よくあるエラーの対処法についてもわかりやすく解説します。
目次
SEARCH関数の使い方
SEARCH関数は、特定の文字や文字列が、対象の文字列内のどこに位置するかを検索し、その開始位置を数値で返します。大文字と小文字を区別しないため、あいまいな検索に適しています。
書式
- 検索文字列: 検索したい文字または文字列を指定します。
- 対象: 検索の対象となる文字列、またはその文字列が入力されているセルを指定します。
- [開始位置]: 検索を開始する位置を数値で指定します。この引数は省略可能で、省略した場合は1(先頭)から検索が開始されます。
具体例
例えば、セルA1に「株式会社ABC商事」という文字列があり、そこから「ABC」が何文字目から始まるかを知りたい場合を考えてみましょう。
| A | |
|---|---|
| 1 | 株式会社ABC商事 |
セルB1に以下の数式を入力します。
=SEARCH(“ABC”, A1)
この数式の結果は「5」となります。これは、「ABC」が「株式会社ABC商事」の5文字目から始まることを示しています。(「株」「式」「会」「社」の4文字の後に「A」が来るためです。)
開始位置を指定する例
もし、同じ文字列内で2つ目の「a」を探したい場合など、特定の場所から検索を開始したい場合は、「開始位置」引数を使用します。
例えば、セルA1に「apple banana apple」という文字列があり、2つ目の「apple」を探したい場合、1つ目の「apple」が5文字目までなので、6文字目から検索を開始するように指定します。
=SEARCH(“apple”, A1, 6)
この数式の結果は「14」となります。
SEARCH関数の利用シーン
SEARCH関数は、単独で使うこともありますが、他の関数と組み合わせることでその真価を発揮します。ここでは、実務でよく使われる利用シーンをいくつかご紹介します。
特定の文字を含むデータの抽出・絞り込み
SEARCH関数は、IF関数やISNUMBER関数と組み合わせて、特定の文字を含むデータだけを抽出したり、条件付き書式で強調表示したりする際に非常に役立ちます。
例えば、商品リストの中から「限定」という文字を含む商品だけを抽出したい場合を考えてみましょう。
| A | B | |
|---|---|---|
| 1 | 商品名 | 抽出結果 |
| 2 | 限定セットA | |
| 3 | 通常版B | |
| 4 | 限定品C | |
| 5 | 特別版D |
セルB2に以下の数式を入力し、下にコピーします。
=IF(ISNUMBER(SEARCH(“限定”, A2)), “限定品”, “その他”)
- SEARCH(“限定”, A2): セルA2に「限定」が含まれているかを検索します。含まれていれば数値(開始位置)を返し、含まれていなければエラー値(#VALUE!)を返します。
- ISNUMBER(…): SEARCH関数の結果が数値(つまり「限定」が含まれている)かどうかを判定します。数値であればTRUE、エラーであればFALSEを返します。
- IF(…, “限定品”, “その他”): ISNUMBER関数の結果がTRUEなら「限定品」、FALSEなら「その他」と表示します。
これにより、B列には「限定品」または「その他」が表示され、簡単に限定商品を識別できるようになります。
文字列の分割(LEFT, RIGHT, MID関数との組み合わせ)
SEARCH関数は、LEFT関数、RIGHT関数、MID関数と組み合わせて、特定の区切り文字を基準に文字列を分割する際によく利用されます。
例えば、メールアドレス「[email protected]」からユーザー名とドメイン名を分割したい場合を考えてみましょう。
| A | B | C | |
|---|---|---|---|
| 1 | メールアドレス | ユーザー名 | ドメイン名 |
| 2 | [email protected] |
セルB2にユーザー名を抽出する数式、セルC2にドメイン名を抽出する数式を入力します。
ユーザー名(「@」の左側)を抽出する
=LEFT(A2, SEARCH(“@”, A2) – 1)
- SEARCH(“@”, A2): セルA2内の「@」の位置を特定します。この例では「12」を返します。
- – 1: 「@」の1文字前までを抽出するために、結果から1を引きます。
- LEFT(A2, …): セルA2の左端から、計算された文字数分の文字列を抽出します。
ドメイン名(「@」の右側)を抽出する
=RIGHT(A2, LEN(A2) – SEARCH(“@”, A2))
- LEN(A2): セルA2の文字列の全長を取得します。
- SEARCH(“@”, A2): セルA2内の「@」の位置を特定します。
- LEN(A2) – SEARCH(“@”, A2): 全長から「@」の位置を引くことで、「@」より右側の文字数を計算します。
- RIGHT(A2, …): セルA2の右端から、計算された文字数分の文字列を抽出します。
SEARCH関数の応用
SEARCH関数は、より複雑なデータ処理にも応用できます。
複数の検索文字列に対応する
複数のキーワードのいずれかを含むセルを検索したい場合、SEARCH関数をOR条件と組み合わせて使用できます。
例えば、セルA1に「りんご、みかん、ぶどう」という文字列があり、「みかん」または「ぶどう」のどちらかが含まれているかを確認したい場合を考えます。
=OR(ISNUMBER(SEARCH(“みかん”, A1)), ISNUMBER(SEARCH(“ぶどう”, A1)))
この数式は、A1に「みかん」が含まれているか、または「ぶどう」が含まれているかのいずれかがTRUEであればTRUEを返します。
エラーハンドリングとIferror関数
SEARCH関数は、検索文字列が見つからない場合に#VALUE!エラーを返します。このエラーを回避し、ユーザーフレンドリーな表示にするためにIFERROR関数と組み合わせることがよくあります。
例えば、特定のコードが含まれていない場合に「該当なし」と表示したい場合です。
=IFERROR(SEARCH(“コードX”, A1), “該当なし”)
この数式は、「コードX」が見つかればその開始位置を、見つからなければ「該当なし」と表示します。
SEARCH関数のよくあるエラーと対策
SEARCH関数を使用する際によく遭遇するエラーとその対策をまとめました。
1. #VALUE! エラー
原因:
- 検索文字列が見つからない: SEARCH関数が指定された検索文字列を「対象」の文字列内で見つけられなかった場合に発生します。
- 検索文字列が空: 検索文字列に空の文字列(””)を指定した場合、常に1を返し、エラーにはなりません。
対策:
- 検索文字列の確認: 検索したい文字列が正しく入力されているか、スペルミスがないかを確認してください。
- 対象文字列の確認: 検索対象のセルが正しく指定されているか、また対象のセルに意図した文字列が入力されているかを確認してください。
- IFERROR関数の利用: 検索文字列が見つからない可能性がある場合は、IFERROR関数と組み合わせてエラー表示を回避し、代わりに分かりやすいメッセージ(例: “見つかりません”)を表示させることを検討してください。
=IFERROR(SEARCH(“検索ワード”, A1), “見つかりません”)
2. ワイルドカードの使用に関する誤解
原因:
SEARCH関数では * (アスタリスク) や ? (クエスチョン) をワイルドカードとして扱います。したがって、ワイルドカード検索を行う場合はそのまま * や ? を使えばよく、特定の1文字や任意の文字列を柔軟に検索できます。
対策:
ワイルドカードを“文字そのもの”として検索したい場合は、チルダ ~ を検索文字列の前に付けます。
- =SEARCH(“~*”, A1) …「*」という文字の位置を返す
- =SEARCH(“~?”, A1) …「?」という文字の位置を返す
なお、FIND 関数はワイルドカードをサポートしておらず、大文字・小文字を区別する厳密な検索のみ行えます。COUNTIF 関数や MATCH 関数などはワイルドカードを利用できますが、通常のワイルドカード検索であれば SEARCH 関数だけで十分です。
3. 大文字・小文字の区別をしたい場合
原因:
SEARCH関数は、大文字と小文字を区別しません。例えば、「Apple」と「apple」は同じものとして扱われます。
対策:
大文字・小文字を区別して検索したい場合: 大文字と小文字を厳密に区別して検索したい場合は、SEARCH関数ではなくFIND関数を使用してください。
例: =FIND(“Apple”, A1) は、「Apple」という文字列を正確に大文字・小文字を区別して検索します。
SEARCH関数で文字列内の位置を特定する
SEARCH関数は、指定した文字列がどの位置から現れるかを検索し、その位置を数値で返すExcelの文字列操作関数です。大文字・小文字を区別せず検索でき、メールアドレスからドメイン抽出、特定キーワードを含む商品の分類、文字列の分割など、業務データの整理・分析で幅広く使われます。
LEFT・RIGHT・MID・LEN関数などと組み合わせることで、文字列の分割や可変長の部分抽出にも柔軟に対応できます。SEARCHは部分一致検索が可能なため、IF・ISNUMBER・IFERROR関数と併用すれば、条件付き抽出やエラー処理にも活用できます。
ただし、SEARCH関数はワイルドカードに対応しておらず、空文字検索は1を返す仕様のため、設計時の理解が重要です。SEARCH関数の特性を正しく把握すれば、文字列の構造把握や検索処理を効率的に行うことが可能になります。データベース的な処理や帳票整形の基礎として実務でも応用の幅が広い関数です。
システム乱立を解消するためのステップとは?
多くの企業がバックオフィス業務効率化のため多様なクラウドシステムを導入するも、「便利なはずが非効率」という現実に直面しています。
その原因は、勤怠や経費など「部分最適」なシステム導入による乱立です。システム同士がつながらず、データの手入力やExcelでの突き合わせ作業が常態化。
これは「見えないコスト」を増やし、業務フローを複雑化させ、現場の負担を増大させます。システム乱立のリスクを整理し、業務アセスメントによる根本解決策をご紹介するホワイトペーパーを用意していますので、ぜひお気軽にご覧ください。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関数 文字列操作の関連記事
新着記事
-
# 業務効率化の基本
クラウドのメリット・デメリットは?主要サービスやオンプレミスとの比較表をもとに解説
クラウドのメリット・デメリットは? クラウドは、初期費用を抑えて迅速な導入や拡張ができる点が大きなメリットですが、ネット環境への依存や長期的なコスト増といったデメリットも伴います。…
詳しくみる -
# 業務効率化の基本
社外へのファイル共有を安全に行う方法は?リスクやツール選びのポイントを徹底解説
社外へのファイル共有を安全に行う方法は? 社外へのファイル共有は、機密保持のためクラウドストレージ等の専用ツールを活用し、適切な権限管理と期限設定のもとで行うべき重要な業務プロセス…
詳しくみる -
# 業務効率化の基本
マニュアルの種類は?業務・規範・安全管理など目的別に作成する方法を解説
マニュアルの種類は? マニュアルの種類は、活用目的や対象読者に応じて「業務」「操作」「規範」「教育・訓練」「作業」「製品」「安全・危機管理」の7つに大別されます。 業務・操作: 全…
詳しくみる -
# メモ
Windowsのメモ帳で文字を検索するには?文字列を置換・ファイルを横断検索する方法も解説
Windowsのメモ帳で文字を検索するには? Windowsのメモ帳で文字を検索するには、ショートカットキー「Ctrl + F」を使用するのが効率的です。 検索・置換:Ctrl +…
詳しくみる -
# 業務効率化の基本
ノウハウを蓄積するには?組織の知識を資産に変える方法・仕組みづくり・ツール選びを解説
ノウハウの蓄積方法まとめ ノウハウの蓄積とは、個人の経験や技術(暗黙知)を文書や動画などの形式知へ変換し、組織全体で共有・再利用できる資産に変えるプロセスです。 属人化の解消: 担…
詳しくみる -
# ツール
チャットが苦手だと感じる理由は?原因・特徴・克服するためのコツを徹底解説
チャットが苦手だと感じる理由は? チャットが苦手な主な理由は、即時返信へのプレッシャーや感情が伝わりにくい不安にあり、無理に速度を追わず運用ルールを整えることが克服の鍵です。 脱・…
詳しくみる
