【エクセル時短】は「少しでも早く仕事を終わらせたい!」というビジネスパーソンのみなさんに、Excelの作業効率をアップするワザをお届けする連載です。毎週木曜日更新。
過去の記事一覧はこちら【エクセル時短まとめ】
Excelで管理している会員の一覧表があり、男性だけ、または30代だけの人数を求めたいとき、どのような操作をしますか? 「フィルター」の機能で絞り込んで数える...といった方法もありますが、断然便利なのは、関数を使う方法です。
【エクセル時短】第18回では、1つの条件を満たすデータの個数を求める「COUNTIF」(カウント・イフ)関数と、複数の条件で使える「COUNTIFS」(カウント・イフ・エス)関数を紹介します。あまり知られていませんが、時短できること間違いなしの「名関数」です!
条件が1つのときはCOUNTIF関数で決まり
COUNTIF関数は、その名の通り「条件(IF)を満たすデータを数える(COUNT)」関数です。構文は以下のとおりで、引数[範囲]に指定したセル範囲で[検索条件]に一致するデータの個数を求めます。
COUNTIF
(範囲, 検索条件)
さっそくデータを数えてみましょう。ここでは「性別」が「男」を条件にしました。[検索条件]は「"」(ダブルクォーテーション)で囲って指定しましょう。
セルI3に「=COUNTIF(C3:C32,"男")」と入力すれば、男性の人数を一瞬で求められます。
同様に[範囲]で「居住地」列、[検索条件]で「"神奈川県"」と指定すれば、神奈川県在住の人数を求められます。
なお、[検索条件]には「*」や「?」などのワイルドカードを指定することもできます。例えば「"*県"」とすれば「県」を含むすべてのデータ、「"???県"」とすれば「県」を含む4文字のデータを条件に数えます。
続いて、「登録日」が「2017/4/1以降」のデータを数えてみましょう。
セルI6に「=COUNTIF(F3:F32,">=2017/4/1")」と入力しています。
Excelの日付は古いほど小さい数値、新しいほど大きい数値なので、[検索条件]に「">=2017/4/1"」と指定しています。不等号は半角で入力します。「より前」なら「<」、「より後」なら「>」のように使い分けてください。
不等号を使った応用例としては、否定を意味する「<>」があります。例えば「"<>神奈川県"」とすれば「神奈川県でない」、「"<>0"」とすれば「ゼロでない」という条件になります。
複数条件を指定できるCOUNTIFS関数の使いこなし
複数の条件を指定してデータの個数を求めたいときは、COUNTIFS関数を使います。条件を複数指定できるので「IFS」となるわけです。
COUNTIFS
(範囲1, 検索条件2, 範囲2, 検索条件2, ...)
引数[範囲1]に指定したセル範囲で[検索条件1]に一致するデータ、かつ[範囲2]に指定したセル範囲で[検索条件2]に一致するデータ...といった具合に数えられます。[範囲]と[検索条件]のセットは127個まで指定できます。
指定した複数の条件は「AND条件」とみなされます。[範囲]のうち、すべての[検索条件]を満たしているデータの個数が求められることになります。
以上を踏まえて、先ほどと同じ会員リストで「年齢」が「30代」の人を数えてみましょう。
セルI9に「=COUNTIFS(E3:E32,">=30",E3:E32,"<40")」と入力します。「年齢」列(セルE3〜E32)が30以上、かつ「年齢」列が40未満のデータを数えられました。
COUNTIFS関数で注意したいのは、AND条件しか指定できない点です。例えば「50歳以上、もしくは30歳未満」を求めたくて
=COUNTIFS(E3:E32,">=50",E3:E32,"<30")
と入力しても、結果は「0」になってしまいます。「">=50"」と「"<30"」の両方を満たすデータは存在しないからです。
このような「OR条件」を指定したい場合は、COUNTIF関数を使って
=COUNTIF(E3:E32,">=50")+COUNTIF(E3:E32,"<30")
と入力します。50歳以上の人数と30歳未満の人数を別々に求めて、足すわけですね。
加えて、COUNTIFS関数では[範囲1]と[範囲2]に指定するセル範囲の列数や行数が等しくない場合、エラーになる点にも注意してください。
もう1つ、例を挙げましょう。「性別」が「女性」かつ「DM可否」が「可」、つまり複数の列のデータに対して条件を指定して人数を求めてみます。
セルI12に「=COUNTIFS(C3:C32,"女",G3:G32,"可")」と入力しています。
「女性かつDM可」の人数を求められました。「性別」列と「DM可否」列は共に1列30行なので、エラーにはなりません。
いかがでしたでしょうか? 条件が複雑になると引数の指定が複雑になりますが、手動では難しい個数のカウントを瞬時に行えるのが、COUNTIF関数とCOUNTIFS関数のメリットです。双方の特徴を知って、使い分けてください。