Excelで文字列を扱うとき、特定の文字や単語の位置を調べる場面はよくあります。文字列の位置を検索する関数には SEARCH関数 と FIND関数 の2種類がありますが、最大の違いは 大文字・小文字の区別 と ワイルドカードの使用可否 です。
- SEARCH関数:大文字・小文字を区別せず、ワイルドカード(
*
や?
)も利用可能 - FIND関数:大文字・小文字を区別し、ワイルドカードは使用不可
このように、SEARCH関数は柔軟な検索が可能で、FIND関数は厳密な検索に向いています。本記事では、SEARCH関数の使い方と活用法をわかりやすく解説します。
SEARCH関数とは?
SEARCH関数は、指定した文字列の中で検索文字列が最初に現れる位置を返す関数です。
- 位置は1文字目を1として数えます。
- 大文字と小文字を区別しません。
書式
=SEARCH(検索文字列, 対象文字列, [開始位置])
- 検索文字列:探したい文字列。
- 対象文字列:検索対象となるセルや文字列。
- 開始位置(省略可):検索を始める位置。省略時は1文字目から検索。
使用例
- 単純な検索
=SEARCH("@" ,"test@example.com")
→ 結果:5
(「@」は5文字目) - 検索開始位置を指定
=SEARCH("e","example",3)
→ 結果:7
(3文字目以降で最初の「e」は7文字目) - セル参照で検索
A1セルに「Excel関数」がある場合=SEARCH("関数", A1)
→ 結果:6
活用例
- メールアドレスの分割
「@」の位置を探してユーザー名とドメインを分割可能。 - 文字列の一部抽出
MID
関数と組み合わせて検索位置から文字列を取り出せます。 - データの検索やエラー回避
文字が見つからなければIFERROR
関数で別の処理を指定可能。
注意点
- 大文字・小文字を区別しない
区別したい場合はFIND関数
を使います。 - 検索文字列がない場合はエラー
見つからないと#VALUE!
エラーになります。 - 開始位置を指定可能
複数回出現する文字の2回目以降を検索できます。
関連関数
- FIND関数:文字列の位置を検索(大文字・小文字を区別)
- SEARCHB関数:バイト単位で位置を検索
- MID関数:指定位置から文字列を取り出す
まとめ
SEARCH関数は、文字列内で検索文字列が最初に現れる位置を返す関数です。
- 書式:
=SEARCH(検索文字列, 対象文字列, [開始位置])
- 大文字・小文字を区別せずに検索
- MID関数やIFERROR関数と組み合わせるとさらに便利