【Excel】COUNTIFS関数を利用した複数条件でのデータ集計と活用法

この記事は約6分で読めます。

今回は、ExcelのCOUNTIFS関数を使用して、複数の条件に一致するデータの件数(人数や個数など)を正確に集計する方法について紹介します。

COUNTIFS関数とは何か

Excelでアンケート結果や売上データ、社員名簿などを集計する際、「男性は何人いるか」といった単一の条件であればCOUNTIF関数で簡単に求めることができます。
しかし、実務においては「東京支店に所属している、かつ、営業部の、かつ、30代の社員は何人いるか」といったように、複数の条件を同時に満たすデータだけを絞り込んで数えたい場面が頻繁に発生します。
このような複雑な集計を、作業列を作ったりフィルター機能を使ったりせずに、一つの数式だけで瞬時に行ってくれるのが「COUNTIFS(カウントイフス)関数」です。
COUNTIFS関数は、最大で127個までの条件を指定することができ、指定したすべての条件を満たしている(AND条件)セルの個数だけをカウントするという強力な集計機能を持っています。
名簿から特定の属性を持つターゲット層を抽出したり、アンケート結果をクロス集計したりする上で、ビジネスに不可欠な関数と言えます。

関数の構文と引数

COUNTIFS関数の基本的な構文は以下の通りです。
=COUNTIFS(条件範囲1, 条件1, [条件範囲2, 条件2], …)

  • 条件範囲1: 1つ目の条件を探す対象となるセル範囲(例:所属支店の列)を指定します。
  • 条件1: その範囲の中から見つけ出したい条件(例:”東京支店”)を指定します。
  • 条件範囲2, 条件2(省略可能): 2つ目以降の条件とその範囲を、カンマで区切って続けて指定していきます。

条件範囲と条件は必ずセットで指定する必要があり、すべての条件範囲の行数(または列数)が同じサイズ(例えばA2:A100とC2:C100など)で揃っていることが正しく計算されるための前提となります。

COUNTIFS関数を活用する具体的な場面

複数の条件を組み合わせることで、単純な件数把握から高度なデータ分析まで幅広い用途に対応できます。

部署別・役職別の人数を集計する(クロス集計)

最も一般的な使い方が、クロス集計表(マトリックス表)の作成です。
例えば、縦軸に「営業部」「総務部」といった部署名が並び、横軸に「部長」「課長」「一般」といった役職名が並んだ表を作りたい場合を考えます。
集計表の「営業部の部長」が交差するセルに、以下のようなCOUNTIFS関数を入力します。
=COUNTIFS(元の表の部署列, “営業部”, 元の表の役職列, “部長”)
この数式をオートフィルで表全体にコピーする(数式内の「営業部」や「部長」の文字は、集計表の見出しセルへの絶対参照・複合参照にしておく)ことで、各部署・各役職の人数分布が一瞬で完成します。
ピボットテーブルを使わずに、自作のフォーマットで柔軟なクロス集計を行いたい場合に非常に有効な手法です。

特定の期間内の件数をカウントする

COUNTIFS関数は、文字列が一致するかどうかだけでなく、数値の大小や日付の前後といった条件も指定できます。
「4月1日から4月30日までの間に売れた商品の個数」を知りたい場合、条件は「4月1日以降」かつ「4月30日以前」という2つになります。
数式は以下のようになります。
=COUNTIFS(日付の列, “>=2024/4/1”, 日付の列, “<=2024/4/30")
「以上(>=)」や「以下(<=)」といった比較演算子を条件として使用する場合は、必ずその演算子と数値をセットにして「""(ダブルクォーテーション)」で囲むというルールがあります。
この日付による範囲指定テクニックは、キャンペーン期間中の申込者数や、四半期ごとの売上件数を把握する際に欠かせません。

比較演算子とワイルドカードを使った高度な条件指定

条件の指定方法を工夫することで、COUNTIFS関数の応用範囲はさらに広がります。

数値の範囲を指定する(以上・以下・未満)

年齢構成や価格帯の分析でもCOUNTIFS関数が活躍します。
「年齢が30歳以上、かつ40歳未満(30代)」の人数をカウントしたい場合、条件を以下のように設定します。
=COUNTIFS(年齢の列, “>=30”, 年齢の列, “<40")
比較演算子を使う際、条件値として「30」などの数値を直接入力するのではなく、別のセル(例えばD2)に入力された数値を参照したい場合は、「”>=”&D2」のように、演算子だけをダブルクォーテーションで囲み、アンパサンド(&)でセル番地と結合するという少し特殊な書き方が必要になります。

ワイルドカードで「〜を含む」を条件にする

完全一致ではなく、特定のキーワードが含まれているデータだけを数えたい場合は、「*(アスタリスク)」や「?(クエスチョンマーク)」といったワイルドカードを使用します。
例えば、住所録の中から「東京都」から始まる住所の人数を知りたい場合、条件を「”東京都*”」と指定します(アスタリスクは0文字以上の任意の文字列を表します)。
商品名の中に「パソコン」という言葉が含まれている(前後に何文字あってもよい)件数をカウントしたい場合は、条件を「”*パソコン*”」と指定します。
表記揺れがあるデータ(「ノートパソコン」と「デスクトップパソコン」など)を大まかにグループ化して集計したい場面で、このワイルドカード検索は強力な威力を発揮します。

COUNTIFS関数を使用する際の注意点

強力な集計ツールですが、正しい結果を得るためにはいくつか気をつけるべきポイントがあります。

「OR条件(または)」の集計は工夫が必要

COUNTIFS関数の最大の注意点は、「すべての条件を満たした(AND条件)」データしかカウントできないという点です。
「東京支店、または大阪支店の人」といったように、どちらか一方でも条件を満たしていればカウントするという「OR条件」を、COUNTIFS関数1つだけで処理することはできません。
このようなOR条件の集計を行いたい場合は、「東京支店の人をカウントするCOUNTIFS関数」と、「大阪支店の人をカウントするCOUNTIFS関数」を別々に作成し、最後にその2つの数式を「+」で足し合わせる(例:=COUNTIFS(…)
+ COUNTIFS(…))というアプローチをとるのが最も確実で簡単な方法です。

空白以外のセル(何かが入力されているセル)をカウントする

「入金日が入力されている(空欄ではない)件数」をカウントしたい場合、条件の書き方に戸惑うことがあります。
空白以外のセルを条件とする場合は、等しくないことを意味する「(ノットイコール)」を使用し、条件を「””」と指定します。
逆に、完全な空白セルだけをカウントしたい場合は、条件を「”=”」とするか、専用の関数であるCOUNTBLANK関数を使用します。

まとめ

ExcelのCOUNTIFS関数を使用して、複数の条件に一致するデータを正確に集計する方法について解説しました。
「=COUNTIFS(条件範囲1, 条件1, 条件範囲2,
条件2…)」と繋げていくだけで、部署と役職といったクロス集計から、特定の期間(日付の範囲)や年齢層の絞り込みまで、複雑なデータ分析が数式一つで完結します。
比較演算子(>=など)をダブルクォーテーションで囲むルールや、セル参照時のアンパサンド(&)での結合、あいまい検索を可能にするワイルドカード(*)の使い方といったテクニックを覚えることで、関数の表現力はさらに高まります。
「すべてを満たす(AND条件)」という特性を理解し、OR条件の場合は数式同士を足し算するという柔軟な思考を持つことが重要です。
フィルター機能で手作業で数えていた時間を劇的に短縮し、常に最新の集計結果を自動で表示してくれるCOUNTIFS関数をマスターし、効率的なデータ管理を実現してみてはいかがでしょうか。