【Excel・エクセル】SEARCH関数の使い方!文字列の位置を検索する


この文字が、セルの何文字目にあるか知りたいんだ。

SEARCH関数かFIND関数が使えるよ。
- 文字列の位置を検索するにはSEARCH関数
- FIND関数との違いは、大文字小文字を区別するか、ワイルドカードが使えるかどうか
- =SEARCH(検索したい文字列,位置を知りたいセル,左から何番目から探すか)
【Excel・エクセル】文字列の位置を検索できる、SEARCH関数
SEARCH関数は、指定した文字列がセルや文字列の何番目にあるか分かる関数です。
ちなみに読み方は、「サーチ関数」。

よく似た関数に「FIND関数」があるよ。
SEARCH関数とFIND関数の違い
SEARCH関数とFIND関数は、ほぼ同じ挙動をします。


SEARCH関数とFIND関数の違いは、以下です。
FIND関数 | SEARCH関数 | |
---|---|---|
大文字と小文字を区別 | 〇 | × |
ワイルドカード | × | 〇 |

状況によって使い分けると、良さそうだね。

あと、「SEARCHB関数」ってのもある。
SEARCH関数とSEARCHB関数の違い
SEARCHB関数も、SEARCH関数と使い方は全く一緒。
ただ、全角文字があるかどうかで答えは変わります。

SEARCH関数とSEARCHB関数の違いは、以下です。
SEARCH関数 | SEARCHB関数 | |
---|---|---|
半角 | 1でカウント | 1でカウント |
全角 | 1でカウント | 2でカウント |

例の画像は、対象が全角のひらがなだったから、答えが違ったんだね。
【Excel・エクセル】SEARCH関数の使い方
=SEARCH(検索文字列,対象,開始位置)
検索文字列 | この文字列は |
対象 | この中の何番目にありますか |
開始位置 | この位置から数えて(省略可) |

検索位置を省略すると「1」、つまり1文字目から数えるよ。
使い方は簡単。
「s」がセルC2の何番目にあるか知りたい場合「=SEARCH(“s",C2)」で分かります。
1文字目から探す場合、開始位置は省略できます。


「s」はセルC2の頭から数えて何番目か、ってことだね。
また文字列がない場合、「#VALUE」のエラーになります。
SEARCH関数の使い方、同じ文字が複数ある場合
「Microsoft Office」の「i」の位置を検索したいのですが、「M"i"crosoft Off"i"ce」と「i」は2つありますね。
この場合「=SEARCH(“i",C2)」では「2」となります。
SEARCH関数は同じ文字列が複数ある場合、最初に見つかった方の位置を検索するんです。


2つ目の「i」の位置は、どうやってわかるの?

開始文字を使うんよ。
さっきの式に、開始文字3を指定してみます。
「=SEARCH(“i",C2,3)」では「14」に変りました。
同じ文字列が複数あるときは、開始位置でコントロールすると良さそうです。


「i」はセルC2の3文字目から数えて何番目か、ってことだね。
SERCH関数の使い方、検索文字列は複数文字列でもOK
「Microsoft Office」から後半の「c」の位置を知りたいのですが、開始位置をいくつにすればいいかって、いちいち数えるのは面倒!

そんな時は、検索文字列を複数文字列にするんよ。
後半の「c」はceと続くので、検索文字列も「ce」にしてみます。
「=SEARCH(“ce",C2)」にすれば、最後の「c」の位置が検索できました。


探したい文字列を先頭に、検索文字列を指定するんだね。
SERCH関数の使い方、ワイルドカードも使える
SEARCH関数の検索文字列には、ワイルドカードが使えます。
? | 何にでもなれる文字、一文字分 |
* | 何にでもなれる文字、0~何文字でもOK |
文字列と組み合わせて、いろんな文字を指定できるんです。
Aで始まる | “A*" |
Aで始まりBで終わる | “A*B" |
AとBの間に2文字ある | “A??B" |
例えば「"o?f"」だと、oとfの間に1文字ある3文字の文字列、ということに。
Officeの「Off」が該当するので「=SEARCH(“o?f",C2)」では11となりました。

注意!SEARCH関数は大文字と小文字を区別しない
「Microsoft Office」から、大文字の「O」の位置を検索しようと、「=SEARCH(“O",C2)」と入力しましたが、5になってしまいました。


SEARCH関数は、大文字と小文字を区別しないんよ。
大文字と小文字を区別するには、FIND関数を使います。
「=FIND(“O",C2)」では、ちゃんと大文字の「O」の位置が分かりました。

FIND関数との違いを理解して、状況に合う方を使ってくださいね!
それでは、お疲れさまでした!
- 文字列の位置を検索するにはSEARCH関数
- FIND関数との違いは、大文字小文字を区別するか、ワイルドカードが使えるかどうか
- =SEARCH(検索したい文字列,位置を知りたいセル,左から何番目から探すか)
ディスカッション
コメント一覧
まだ、コメントがありません