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

抽出,検索

SEARCH関数の使い方
もりの

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

やまの

SEARCH関数かFIND関数が使えるよ。

今回のポイント
  • 文字列の位置を検索するにはSEARCH関数
  • FIND関数との違いは、大文字小文字を区別するか、ワイルドカードが使えるかどうか
  • =SEARCH(検索したい文字列,位置を知りたいセル,左から何番目から探すか)

スポンサーリンク

【Excel・エクセル】文字列の位置を検索できる、SEARCH関数

SEARCH関数は、指定した文字列がセルや文字列の何番目にあるか分かる関数です。

ちなみに読み方は、「サーチ関数」。

やまの

よく似た関数に「FIND関数」があるよ。

SEARCH関数とFIND関数の違い

SEARCH関数とFIND関数は、ほぼ同じ挙動をします。

SEARCH関数の例
SEARCH関数の例
FIND関数の例
FIND関数の例

SEARCH関数とFIND関数の違いは、以下です。

FIND関数SEARCH関数
大文字と小文字を区別×
ワイルドカード×
もりの

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

やまの

あと、「SEARCHB関数」ってのもある。

SEARCH関数とSEARCHB関数の違い

SEARCHB関数も、SEARCH関数と使い方は全く一緒。

ただ、全角文字があるかどうかで答えは変わります。

SEARCHB関数の例
SEARCHB関数の例

SEARCH関数とSEARCHB関数の違いは、以下です。

SEARCH関数SEARCHB関数
半角1でカウント1でカウント
全角1でカウント2でカウント
もりの

例の画像は、対象が全角のひらがなだったから、答えが違ったんだね。

【Excel・エクセル】SEARCH関数の使い方

SEARCH関数の書き方

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

検索文字列この文字列は
対象この中の何番目にありますか
開始位置この位置から数えて(省略可)
やまの

検索位置を省略すると「1」、つまり1文字目から数えるよ。

使い方は簡単。

「s」がセルC2の何番目にあるか知りたい場合「=SEARCH(“s",C2)」で分かります。

1文字目から探す場合、開始位置は省略できます。

SEARCH関数の例
SEARCH関数の使い方
もりの

「s」はセルC2の頭から数えて何番目か、ってことだね。

また文字列がない場合、「#VALUE」のエラーになります。

SEARCH関数の使い方、同じ文字が複数ある場合

「Microsoft Office」の「i」の位置を検索したいのですが、「M"i"crosoft Off"i"ce」と「i」は2つありますね。

この場合「=SEARCH(“i",C2)」では「2」となります。

SEARCH関数は同じ文字列が複数ある場合、最初に見つかった方の位置を検索するんです。

SEARCH関数で複数ある文字列を検索した画像
最初に見つかった方を表示
もりの

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

やまの

開始文字を使うんよ。

さっきの式に、開始文字3を指定してみます。

=SEARCH(“i",C2,3)」では「14」に変りました。

同じ文字列が複数あるときは、開始位置でコントロールすると良さそうです。

SEARCH関数で開始位置を指定した画像
開始位置でコントロール
もりの

「i」はセルC2の3文字目から数えて何番目か、ってことだね。

SERCH関数の使い方、検索文字列は複数文字列でもOK

「Microsoft Office」から後半の「c」の位置を知りたいのですが、開始位置をいくつにすればいいかって、いちいち数えるのは面倒!

やまの

そんな時は、検索文字列を複数文字列にするんよ。

後半の「c」はceと続くので、検索文字列も「ce」にしてみます。

=SEARCH(“ce",C2)」にすれば、最後の「c」の位置が検索できました。

SEARCH関数の県s買う文字列を複数文字列にした画像
検索文字列は複数文字列でもOK
もりの

探したい文字列を先頭に、検索文字列を指定するんだね。

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関数でワイルドカードを使った画像
ワイルドカードも使える

注意!SEARCH関数は大文字と小文字を区別しない

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

SEARCH関数で大文字を指定した画像
大文字ではうまくいかない
やまのの困った顔
やまの

SEARCH関数は、大文字と小文字を区別しないんよ。

大文字と小文字を区別するには、FIND関数を使います。

=FIND(“O",C2)」では、ちゃんと大文字の「O」の位置が分かりました。

FIND関数の開始文字を大文字で指定した場合
FIND関数なら大文字で検索できる

FIND関数との違いを理解して、状況に合う方を使ってくださいね!
それでは、お疲れさまでした!

今回のおさらい
  • 文字列の位置を検索するにはSEARCH関数
  • FIND関数との違いは、大文字小文字を区別するか、ワイルドカードが使えるかどうか
  • =SEARCH(検索したい文字列,位置を知りたいセル,左から何番目から探すか)