Home » Excel(エクセル)の関数・数式の使い方 » 文字列 » SEARCH関数でワイルドカード「*」「?」を検索するには?

SEARCH関数でワイルドカード「*」「?」を検索するには?

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「excel関数 search関数 チルダ使い方」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

Excelで文字列を検索して、見つかった位置を返すSEARCH関数で、

SEARCH関数でワイルドカード「*」「?」を検索するには?

「~」(チルダ)をどう使えばいいのか、探していた方による検索です。

[スポンサードリンク]

SEARCH関数とは

SEARCH関数の基本を、まずは確認しましょう。
SEACH関数とは
 第1引数に指定された文字列を
 第2引数に指定された文字列の中で探して
 何文字目に見つかったかを返す関数

例えば、A1セルに「ABCDE」という文字列が入力されているときに、いずれかのセルに
「=SEARCH("D", A1)」
という数式を入力すると、A1セルに入力されている「ABCDE」の中で、「D」は4番目に存在するので「4」が返されます。

FIND関数とSEARCH関数はよく似ている

SEARCH関数の仕様を知ると
「FIND関数と何が違うのだろう?」
という疑問を感じる方も、いらっしゃるはずです。

SEARCH関数も、FIND関数も、
第1引数に指定された文字列を
第2引数に指定された文字列の中で探して
何文字目に見つかったかを返す関数

という仕様は同じです。

SEARCH関数とFIND関数

SEARCH関数とFIND関数で何が違うのかというと、
  • 大文字・小文字を区別するか
  • ワイルドカード「*」「?」を使えるか

です。

SEARCH関数は大文字・小文字を区別せずに検索しますが、
FIND関数は大文字・小文字を区別して検索します。

SEARCH関数は「*」「?」をワイルドカードとして使えますが、
FIND関数は「*」「?」を文字列として検索します。

SEARCH関数で「*」「?」を検索する際に「~」チルダを使う

ここまで来てようやく、
「excel関数 search関数 チルダ使い方」
という検索への回答ができます。

SEACH関数で、文字としての「*」「?」を検索したいときに、「~」(チルダ)を使います。

例えば、A1セルに「ABC*E」という文字列が入力されているときに「*」が何文字目にあるかを探すときに
「=SEARCH("*", A1)」
という数式を入力すると、「*」はワイルドカードとみなされるので、「1」が返されてしまいます。

このときに「~」を使って
「=SEARCH("~*", A1)」
という数式にすれば、文字としての「*」を探して「4」を取得できます。

これが、
「excel関数 search関数 チルダ使い方」
という検索キーワードへの回答です。

FIND関数ではダメですか?

ここで考えていただきたいのが、FIND関数ではダメなのかということです。

「ABC*E」という文字列が入力されているときに、文字としての「*」が何文字目にあるかを探すときに、SEARCH関数を使うと、
「=SEARCH("~*", A1)」
としなければなりませんがFIND関数なら、
「=FIND("*", A1)」
という数式で「*」が何文字目かを取得することができるのです。

FIND関数ならそもそも「*」「?」をワイルドカードとしては扱わないからです。

「*」や「?」を検索するのにSEARCH関数を使っていた方は、本当にSEARCH関数でなければいけないのか、よく考えてみてください。

[スポンサードリンク]

Home » Excel(エクセル)の関数・数式の使い方 » 文字列 » SEARCH関数でワイルドカード「*」「?」を検索するには?

「文字列」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.