Excel関数 逆引き集 | 大文字小文字区別なく検索 → SEARCH

Excel
スポンサーリンク

概要

SEARCH関数は「文字列の中から指定した文字や部分文字列を検索し、その位置を返す」関数です。FIND関数と似ていますが、大文字・小文字を区別しないのが最大の特徴です。例えば「A」と「a」を同じ文字として扱います。検索対象が見つからない場合はエラー(#VALUE!)になります。文字列処理の基礎として、区切り文字の位置を調べたり、部分文字列を抽出する際に活躍します。


基本の使い方

書式

=SEARCH(検索文字列, 対象文字列, [開始位置])
  • 検索文字列:探したい文字や部分文字列
  • 対象文字列:検索対象となる文字列やセル
  • 開始位置:検索を始める位置(省略時は1=先頭から)

=SEARCH("A", "ABCDEF")       // 1(Aは1文字目)
=SEARCH("a", "ABCDEF")       // 1(大文字小文字を区別しないためAと同じ)
=SEARCH("DEF", "ABCDEF")     // 4(DEFは4文字目から)
=SEARCH("B", "ABCDEF", 3)    // #VALUE!(3文字目以降にはBがない)

具体例

区切り文字の位置を調べる

「AB-12345」の中でハイフンの位置を調べる:

=SEARCH("-", A2)

結果は3。これを利用してLEFTやRIGHTで区切り文字の左右を切り出せます。

姓名のスペース位置を調べる

「山田 太郎」の中でスペースの位置を調べる:

=SEARCH(" ", A2)

結果は3。これを使って姓と名を分けられます。

メールアドレスの「@」位置を調べる

=SEARCH("@", A2)

「@」の位置を返すので、ユーザー名部分とドメイン部分を分ける処理に使えます。


応用テンプレート

区切り文字の左側を抽出

=LEFT(A2, SEARCH("-", A2)-1)

ハイフンの左側を取り出す。

区切り文字の右側を抽出

=RIGHT(A2, LEN(A2)-SEARCH("-", A2))

ハイフンの右側を取り出す。

複数回出現する文字の位置を調べる

2回目以降を探すには開始位置を指定します。

=SEARCH("-", A2, SEARCH("-", A2)+1)

最初のハイフンの次から検索することで、2回目の位置を取得できます。

エラー対策

見つからない場合に空欄を返す:

=IFERROR(SEARCH("-", A2), "")

よくあるつまずきと対策

大文字小文字を区別しない

SEARCHは「A」と「a」を同じ文字として扱います。区別したい場合はFINDを使いましょう。

見つからないとエラーになる

#VALUE!が出るのは正常な挙動です。IFERRORで処理すると安心です。

開始位置を誤る

開始位置は「文字数目」で指定します。0や負数は使えません。

全角・半角の違い

「-」と「-」は別文字です。入力データの全角半角を統一してから検索しましょう。


例題

問題1: A2の文字列から「-」の位置をB2に表示してください。

解答例:

=SEARCH("-", A2)

問題2: C2の文字列からスペースの位置をD2に表示してください。

解答例:

=SEARCH(" ", C2)

問題3: E2のメールアドレスから「@」の位置をF2に表示してください。

解答例:

=SEARCH("@", E2)

問題4: G2の文字列から最初のハイフンの左側をH2に表示してください。

解答例:

=LEFT(G2, SEARCH("-", G2)-1)

問題5: I2の文字列から2回目のハイフンの位置をJ2に表示してください。

解答例:

=SEARCH("-", I2, SEARCH("-", I2)+1)

まとめ

SEARCHは「文字列の中で指定文字がどこにあるか」を返す基本関数で、大文字小文字を区別しない点がFINDとの違いです。区切り文字の位置を調べてLEFT/RIGHT/MIDと組み合わせると、文字列処理の幅が一気に広がります。初心者に伝えたいのは「SEARCHは位置を返すだけ、切り出しは他関数と組み合わせる」という考え方です。これを押さえれば、文字列操作の基礎がしっかり身につきます。

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