「excel関数 search関数 チルダ使い方」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
Excelで文字列を検索して、見つかった位置を返すSEARCH関数で、
「~」(チルダ)をどう使えばいいのか、探していた方による検索です。
SEARCH関数とは
SEARCH関数の基本を、まずは確認しましょう。第1引数に指定された文字列を
第2引数に指定された文字列の中で探して
何文字目に見つかったかを返す関数
例えば、A1セルに「ABCDE」という文字列が入力されているときに、いずれかのセルに
「=SEARCH("D", A1)」
という数式を入力すると、A1セルに入力されている「ABCDE」の中で、「D」は4番目に存在するので「4」が返されます。
FIND関数とSEARCH関数はよく似ている
SEARCH関数の仕様を知ると
「FIND関数と何が違うのだろう?」
という疑問を感じる方も、いらっしゃるはずです。
第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関数でなければいけないのか、よく考えてみてください。
- Newer:対数曲線の書き方
- Older:Excelマクロ入門講座 2016-8-21(日)9:30より
Home » Excel(エクセル)の関数・数式の使い方 » 文字列 » SEARCH関数でワイルドカード「*」「?」を検索するには?