COUNTIF関数にワイルドカードを組み合わせると最強に便利!
ワイルドカードをご存知ですか?
以前『仕事が100倍楽になる、絶対に覚えたいワイルドカードでの検索と置換』でご紹介しましたが、あいまいな検索に重宝します。
実はこのワイルドカードは関数と組み合わせて使うこともできます。
特にCOUNTIF関数との相性がよく、覚えておくと超便利ですよ。
たとえば、COUNTIF関数を使って
下の氏名リストから30代の人数を調べるとき、
みなさんならどうしますか?
年齢を数値に修正してから
COUNTIF関数で数えることもできますが、
ワイルドカードを使うともっと簡単にできます。
COUNTIF関数の検索値を「3?歳」とすればOKです。
下の画像の例だと、
COUTIF関数の数式を「=COUNTIF(B2:B22,A25)」とし、
検索値(3?歳)をA25セルに入力しています。
結果、30代が4名と分かりました。
実際に数えた人数と一致していますね。
ワイルドカードの「?」は任意の1文字を表しています。
従って「3?歳」は「"3" "任意の一文字" "歳"の順でならんだテキスト」を意味します。
エクセルで使えるワイルドカードは「?」の他に「*」があります。
(厳密にはもう一つあるのですがあまり使用しないので省略します)
「*」は「任意の文字(0文字でもOK)」を意味します。
なので「3*歳」としても人数を数えることができますが、
「*」は1文字とは限らず、また、
文字がなくても一致とみなされるので、
リストに「300歳」や「3歳」の人がいたらカウントされます。
要注意です。
しかし、「*」が便利なときもあります。
たとえば「30 歳」というふうに30と歳の間に空白があるテキストが
混在するなら「3*歳」や「3?*歳」を検索値にすると「30 歳」もカウントされます。
もちろん300歳や3歳の人がいない場合に限りますが!
(3?*歳にすれば少なくとも3歳はカウントされません)
また、「30歳 」というふうに歳の後ろに空白があるテキストが
混在するなら「3?歳*」とすると「30歳 」もカウントされます。
このように「?」「*」は一致する検索値の幅を広げ大変便利です。
しかし、先ほど300歳や3歳が数に加わったように、
予期せぬ値がカウントの対象となって、間違いが起こる場合もあります。
十分に注意して使用してください。
お役に立ちましたか?ご活用ください♪