「*」「?」って使えないの? エクセルのIF関数でワイルドカード文字を使う方法

更新:2023/06/26

ITスキル


「*」(アスタリスク)「?」(クエスチョン)「~」(チルダ)などは、ワイルドカード文字とも呼ばれています。名前はカードゲームで使われるワイルドカードから来ており、”何かの代わりに使える文字”と覚えておけばだいたいあっています。

Excelでは抽出したい文字を検索するときに使ったり、関数の中に含めて使ったりできます。なんにでも使えそうな印象ですが、いくつかの注意点もあります。今回はそんなワイルドカード文字をIF関数で使用する場合の使い方を解説します。

→Excelの関連記事はこちら

ワイルドカード文字の概要

Excelのワイルドカード文字は、検索文字列を部分的に指定したいときに有効な機能の1つです。

例えば、住所一覧から「東京都」のデータを探したい時、東京都以下の詳細住所にかかわらず「東京都」が含まれるデータなら全てピックアップしたいですよね。そんな時は「東京都*」のように、東京都以下の部分を「*(アスタリスク)」とすることで、東京都すべての住所をピックアップすることができます。

また「*」以外にも、不明な部分の1文字だけを表す「?(クエスチョン)」、そのままの文字として「*」と「?」を検索したい場合に使う「~(チルダ)」があります。

=エクセルで使える主なワイルドカード文字一覧=

ワイルドカード文字 説明 使い方例
*(アスタリスク)
任意の一連の文字列を表す 「東京都*」
⇒東京都で始まる全ての住所
?(クエスチョン) 任意の 1 文字だけを表す 「A????」
⇒Aで始まる5桁の顧客コード
~(チルダ) *や?を通常の文字として
扱いたい時に前につける
「~?」
⇒普通の文字としての?

「?(クエスチョン)」が1文字だけを表すのに対し、「*(アスタリスク)」は文字数を気にせずに使えて便利です。次からはこの「*(アスタリスク)」を中心に使って解説していきます。

IF関数だけではワイルドカード「*(アスタリスク)」は使えない

下の表は、住所に「区」が含まれているときは「〇」、含まれていないときは「×」を表示する、IF関数を使ったものです。

区の文字の前後には、ワイルドカード文字「*」を使っていますが、表示結果を見ると「IF関数」が反映されていません。
IF関数だけでは、ワイルドカード文字「*(アスタリスク)」は使えないのです。IF関数 ワイルドカード文字

ワイルドカードはCOUNTIF関数と合わせて使う

「IF関数」だけだと、ワイルドカード「*(アスタリスク)」は機能しませんが、「COUNTIF関数」をあわせて使うと検出できるようになります。

COUNTIF関数は、条件に当てはまるセルを数える関数で、記述方法は以下の通り。

数式=COUNTIF(範囲,検索条件)
返す値:条件に当てはまっているセルの個数

IF関数 ワイルドカード文字

検索範囲の中に「りんご」は3つあることが分かりました。このように、検索範囲の中に「いくつあるか」をはじき出すのがCOUNTIF関数です。

IF関数とCOUNTIF関数を合わせて使う方法

ではいよいよ「IF関数」の中に「COUNTIF関数」を仕込んでいきます。

まずは「COUNTIF関数」を使い、お隣のセルに「区」がありますか、と聞いています。検索範囲はお隣のセル1つだけなので、「区」が含まれていれば1、含まれていなければ0をはじき出します。

その上で「IF関数」を使い、COUNTIFでの計算結果が0より大きいかどうかを条件とします。もし、COUNTIFでの計算結果が1ならば、0より大きいので「〇」、計算結果が0ならば「×」を返すというしくみです。

IF関数 ワイルドカード文字

これで「区」が含まれる住所を○と表示することができました!

ワイルドカードを含む複数条件つきのIF関数

次は応用編として、ワイルドカードを含む複数条件つきのIF関数にチャレンジしてみましょう。

複数条件を設けたいときに便利なのは「COUNTIFS関数」。先ほどのCOUNTIF関数の複数形のような名前から分かるとおり、複数の条件を指定できるようになります。

数式=COUNTIFS(範囲,検索条件,範囲,検索条件,…
返す値:すべての条件を満たした回数

例えば先ほどからの都道府県一覧表で、住所に「区」を含み、なおかつ「〇〇県」となっている場合に○と判定する式を作ります(結論、東京都は外れることになります)。

=IF(COUNTIFS(B3,"*区*",A3,"*県")>0,"○","×")

このように入力します。
※実際の入力では文字列以外は全て半角で入力していきます。

B列で「区」を含み、A列で末尾が「県」となって初めて1とカウントされます。もし1とカウントされれば○、そうでなければ×と表示されるというわけです。

ワイルドカードは数字や日付にも使える?

実は、残念ながらワイルドカードは数字や日付には使えません。ワイルドカードで表すことができるのは文字列のみです。

例えば下表で、各都道府県でのセミナーのうち9月に開催するところだけ○にしたいとします。ここまでのようにCOUNTIF関数を使い、日付を「2022/9/*」としても反映されていません

千葉県と東京都は9月開催のはずですが、○にならず全て×となっていますね。対処法としては、ワイルドカードを使うのではなく「9月1日以上、10月1日未満」といった内容を数式に入れこんであげることになります。

=IF(COUNTIFS(C3,">=2022/9/1",C3,"<2022/10/1")>0,"○","×")

今回の例ではこのように入力しました。

複数の条件を設定できるCOUNTIFS関数を用いて「9月1日以上」と「10月1日未満」という2つの条件を並べました。この両方をクリアする場合、すなわち「9月」の場合は○となっています。

まとめ

ワイルドカード文字は便利なのでついついなんにでも使いたくなりますが、ご説明した通り「IF関数」では、そのまま使うことはできません。今回紹介した「COUNTIF関数」が便利なので、この2つの関数をセットで覚えておくといいでしょう。

そして、ワイルドカード文字は日付や数字に使えないのが残念なところ。日付や数字を用いる場合には別の考え方で対応する必要があります。

関数は最初から難しく考えると混乱してしまいがち。まずは基本的なところからマスターしていきましょう。COUNTIF関数を使いこなせるようになったらCOUNTIFS関数の方も使っていくと、より便利になるはずです。

文:マイナビ学生の窓口編集部

関連記事

新着記事

もっと見る

HOT TOPIC話題のコンテンツ

注目キーワード

 ビジネス用語・カタカナ語80選

 キャリアロードマップの一歩目

  • ピックアップ