【Excel】エクセルのsearch関数(複数条件:ワイルドカード:findとの違い)の使い方 | モアイライフ(more E life)
EXCEL作成代行・自動化サービス開始(^^)/

EXCEL作成代行・お悩み解決・関数や数式の追加・グラフ作成大量データの一括加工などお任せください!

→面倒・難しい作業を丸投げする♪

【Excel】エクセルのsearch関数(複数条件:ワイルドカード:findとの違い)の使い方

Excelのスキルアップ
本サイトでは記事内に広告が含まれています

この記事では、エクセルのsearch関数(複数条件:ワイルドカード:findとの違い)の使い方について解説していきます。

以下の3点について具体的にみていきます。

・エクセルのsearch関数の使い方の基本とfind関数との違い

・エクセルのsearch関数のワイルドカードを用いた使い方

・エクセルのsearch関数の複数条件の使い方

それでは、実際のサンプルを用いて、それぞれについて解説していきましょう。

 

 

スポンサーリンク

エクセルのsearch関数の使い方の基本とfind関数との違い

ある対象に検索文字列が何文字目にあるかを知りたいときに使います。

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

とかきます。

ではサンプルを見てみましょう。

「しんぶんし(対象)」の中で「し(検索文字列)」は何文字目かを調べるには、

=SEARCH(“し”,”しんぶんし”,1)

と入力、またはサンプルのようにセルに”し”や”しんぶんし”や1を入力しておいて

=SEARCH(B5,C5,D5)

としてもよいです。

「しんぶんし」の中で「し」は1番目に登場するので、関数の結果は「1」となります。

また[開始位置]は省略すると「開始位置は1」とみなされるので、

=SEARCH(B5,C5) (または) =SEARCH(“し”,”しんぶんし”)

と入力しても関数の結果は「1」となります。

では、開始位置を「2」にしてみたらどうなるでしょう。

=SEARCH(B6,C6,D6) (または) =SEARCH(“し”,”しんぶんし”,2)

と入力すると関数の結果は「5」になりました。

これは検索の開始が2文字目からスタートになったので、1文字目の「し」は無視されてその次の「し」の位置が表示されています。

次に、検索文字列を「あ」にしてみます。対処の「しんぶんし」には「あ」は存在しません。

この場合の関数の結果は「#VALUE!」とエラーになりました。

さいごに、検索文字列を「ぶん」にしてみます。この場合、結果はどうなるでしょうか。

この場合は「ぶん」がでてくるのが3文字目からなので、関数の結果は「3」となりました。

続いてFIND関数との違いをみていきましょう。

FIND関数との違いは大文字と小文字を区別するかどうかです。

SEARCH関数は区別しません。FIND関数は区別します。

日本語の小さい「ゃ」「ゅ」「ょ」などの文字はどちらも別の文字として区別されます。

 

エクセルのsearch関数のワイルドカードを用いた使い方

SEARCH関数では検索文字列にワイルドカードを使うことができます。

ここでワイルドカードをおさらいしておきましょう。

「?」は「任意の一文字」を表します。

「*」は「任意の一文字以上」を表します。

実際のサンプルでみてみましょう。

今回は対象の文字列を「Ab3zY8」としました。検索文字にはワイルドカードを使っています。

検索文字列「3*8」の方は3と8の間に何文字入っていてもよいので、「3zY8」がヒットして関数の結果は3です。「3?8」は間が一文字だけなのでヒットせず関数の結果はエラーになります。

 

エクセルのsearch関数の複数条件の使い方

SEARCH関数を使ってその文字列にある検索文字列が含まれているかを調べることができます。

SEARCH関数で検索文字列が含まれていない場合はエラーがでてくることを利用して、ISNUMBER関数を使用します。

ISNUMBER関数は

=ISNUMBER(テストの対象)

とかき、テストの対象が数字であればTRUEを、そうでなければFALSEを返す関数です。

つまりISNUMBER関数とSEARCH関数を組み合わせると、検索対象があるときはTRUE、ないときはFLASEとすることができます。

これを利用して複数条件で検索することができます。

都道府県がかかれている対象の文字列を用意し、「山」があったら「山」、「川」があったら「川」、「山と川」両方あったら、「山と川」、両方なかったら「なし」と返すようなサンプルを考えます。H3には以下のように入力します。

=IF(F3,IF(G3,”山と川”,”山”),IF(G3,”川”,”なし”))

これはIF関数の
=IF(論理式,論理式がTRUEの場合,論理式がFALSEの場合)
という性質を利用しています。

論理式部分をISNUMBER(SEARCH関数)にするとSEARCH関数での検索がヒットすればTRUE、ヒットしなければFLASEを返します。

IFの入れ子構造になっているので、少し解説します。

まず

=IF(F3,〇,□)

という構造なので、山があれば〇、山がなければ□という処理になります。

そして山がある場合は〇の部分の処理IF(G3,”山と川”,”山”)が実行されるので、
山があり川もあれば”山と川”、山があり川がなければ”山”と表示されます。

また山がない場合は□の部分の処理IF(G3,”川”,”なし”)が実行されるので、
山がなく川があれば”川!”、山がなく川もなければ”なし”と表示されます。

このようにISNUMBER関数とIF関数と組み合わせることによって、複数条件で検索することができます。

 

まとめ エクセルのSEARCH関数の(複数条件:ワイルドカード:findとの違い)の使い方

この記事ではエクセルのSEARCH関数の使い方について解説しました。

SEARCH関数を使いたい際は、今記事で紹介した内容を参考にしてみましょう。

複数条件などで困った際は上記で紹介した方法をためしてみてくださいね。

コメント

スポンサーリンク
タイトルとURLをコピーしました