【Excel・エクセル】ワイルドカードとは?あいまい検索やIF関数での使い方
スープって名前のメニューを検索したいんだけ、できるかな?
それなら、ワイルドカードを使うといいんよ!
- ワイルドカードは、一文字だけは「?」複数文字は「*」
- 検索や置換で使うには、オプション→セル内容が完全に同一であるものを検索するにチェック
- IF関数で使うには、理論値にCOUNTIFなどを使う
ワイルドカードの練習ファイルダウンロード
一緒にやってみませんか?
【Excel・エクセル】ワイルドカードとは?
「あいまい検索」したいときってありませんか?
たとえばフルネームの名簿からCOUNTIF関数を使って、佐藤さんの件数を調べたいとき。
また「あの人……佐藤なんとか子さん!」と、途中だけ分からない文字列を検索したいとき。
そんな時に、まるでトランプのジョーカーのように何にでもなれる文字が使えたらどんなに便利か!
その文字が、「ワイルドカード」なのです!
ちなみにワイルドカードは数値には対応してないよ。
文字列だけなのか。
ワイルドカードは「*(アスタリスク)」か「?」で表します。
ワイルドカードの「?」と「*」の違い
ワイルドカードの「*(アスタリスク)」と「?」、それぞれの違いはこんな感じ。
? | 何にでもなれる文字、一文字分 |
* | 何にでもなれる文字、0~何文字でもOK |
はて?
「あ?お」の場合、「あ1お」や「あえお」など、あとおの間が1文字のものに対応します。
「あ*お」の場合、「あえお」でも「あいうえお」でも「あお」でも対応します。
どっちも半角で入力してね。
?は文字数を指定したいときに使えそうですね。
例えば“???スープ"とした場合、「トマトスープ」や「コーンスープ」といった、スープの前に3つだけ文字が入るものだけを対象にできます。
闇スープ。
またワイルドカードは、文字の頭や末尾にも使えます。
*スープ | トマトスープ、彩り野菜の冷製スープ、など |
スープ* | スープカレー、スープレックス、など |
*スープ* | フカヒレスープと彩り野菜、味噌スープ、スープスパ、など |
ワイルドカード、壱の型、アスタリスク!
マジ怒られるで。
【Excel・エクセル】ワイルドカードの使い方
ワイルドカードは検索や置換、関数でよく使われます。
ワイルドカードの使い方・検索や置換の場合
このメニューの中から何とかスープと、スープの前に何かしら言葉が付くセルを検索したいと思います。
ワイルドカードを使うと「*スープ」でできそうだね!
ステップ1
検索するにも置換するにも、まずはショートカットキー「Ctrlキー+Fキー」を押してください。
ステップ2
検索する文字列に「*スープ」と入力し、「オプション」をクリックします。
危うく検索するところだった……
ステップ3
オプション部分が現れました。
この中の「セル内容が完全に同一であるものを検索する」をクリックしてチェックを入れて、「すべて検索」をクリックしてみてください。
完成!
検索結果が出てきました!
スープは含まれているけどスープで終わっていない、「スープスパ」なんかは除外されています。
???スープにすると、トマトスープだけ検索されるんだね!
ちなみに、○○スープは練習用ファイルで使うものなので、気にしないでください……
先に範囲選択して検索すれば、範囲内検索ができるんよ。
置換も同じ要領でできます。
ワイルドカードの使い方・関数の場合
ワイルドカードは関数でも使えます。
たとえばCOUNTIF関数。条件に合うものの個数を確認する関数ですね。
=COUNTIF(範囲,検索条件)
COUNTIF | この中でこの条件に合うセルは何個ある? |
範囲 | 「この中で」の部分 |
検索条件 | 「この条件」の部分 |
先ほどのメニューの中にスープメニューがいくつあるのか?
スープと名がつくメニュー数を、ワイルドカードとCOUNTIF関数を使って調べたいと思います。
名前にスープって書いてあればいいから、「*スープ*」だね!
ご名答!
ステップ1
というわけで、セルE2に「=COUNTIF(A2:A11,"*スープ*")」と入力してみてください。
完成!
無事、名前にスープと付くメニューの数がカウントできました!
スープと名がつくメニューは「トマトスープ」「スープスパ」「冷製スープスパ」「卵スープ」の4つなので、4ですね。
COUNTIF関数については、こっちのページで詳しくお話しするね。
セルE3以降は、条件にあったスープメニューを数える必要があります。
COUNTIF関数とワイルドカードで出せるので、ぜひチャレンジしてみてください!
答えは上から2,1,1になるよ。
セルE3→=COUNTIF(A2:A11,"*スープ")
セルE4→=COUNTIF(A2:A11,"*スープ")
セルE5→=COUNTIF(A2:A11,"?スープ")
※絶対参照($)が入っていてもOKです。
ほかにもSUMIF関数の検索条件やVLOOKUP関数の検索値なんかは、ワイルドカードが使えます。
【Excel・エクセル】IF関数でワイルドカードを使うには?
こんな便利なワイルドカードですが、意外なことにIF関数では使えません。
使う気満々だったのに!
さっきの表だと「=IF(A2="*スープ*","○","")」でスープメニューに○が付きそうですが、全部空白になってしまいます。
万事休す!?
諦めないでー!
IF関数ではワイルドカードは使えませんが、COUNTIF関数なら使えましたよね。
ということは、COUNTIF関数を使ってIF関数を作ればいいんです!
=IF(COUNTIF(A2,"*スープ*")>0,"○","")でできるよ。詳しく見ていくね。
あ、難しそう……
あ、諦めないでー!
=IF(理論式,値が真の場合,値が偽の場合)
IF | もし |
理論値 | この数式が |
値が真の場合 | 当てはまったらこうしてね |
値が偽の場合 | 当てはまらなかったらこうしてね |
IF関数の理論値に、ワイルドカードを使ったCOUNTIF関数を使います。
ステップ1
まずはIF関数から書いていきます。
セルB2に「=IF(」まで入力してください。
ステップ2
さっそく理論値なので、COUNTIF関数の出番です。
「COUNTIF(」まで入力します。
ステップ3
セルA2に「*スープ*」は何個あるか?を数えます。
「A2,"*スープ*")」とすれば良さそうですね。
1以上なら正の場合、0なら偽の場合になるんよ。
ステップ4
COUNTIF関数が1以上、つまり*スープ*が含まれていたら○、なかったら空白にしたいので、「,"○",""」と入力します。
=もし(セルA2に,"0以上の文字、スープ、0以上の文字"がある場合),"○"を表示してね,違う場合"(空欄)"にしてね)ってことですね!
完成!
エンターキーで確定して、オートフィルでコピーすると……スープメニューに○印が付きましたね!
ワイルドカードを使いこなせば、幅広い対応が可能になりますね!
それでは、お疲れさまでした!
- ワイルドカードは、一文字だけは「?」複数文字は「*」
- 検索や置換で使うには、オプション→セル内容が完全に同一であるものを検索するにチェック
- IF関数で使うには、理論値にCOUNTIFなどを使う
ディスカッション
コメント一覧
まだ、コメントがありません