「区分がAで、かつ年が2023年以上のデータは何件あるか」——このように複数の条件を同時に満たすデータの件数を数えたいとき、単純なCOUNTIF関数では対応できません。こういうときに使うのがCOUNTIFS関数です。
この記事では、COUNTIFS関数の書き方と、条件を複数指定するときの注意点をわかりやすく解説します。
COUNTIFS関数とは
COUNTIFS関数は、複数の条件をすべて満たす行の数を数える関数です。「COUNT(数える)」「IF(条件)」「S(複数)」という名前の通り、条件をいくつでも追加できます。
1つの条件だけで数えたい場合はCOUNTIF関数(Sなし)を使いますが、条件が2つ以上になる場合はCOUNTIFS関数を使う、と覚えておきましょう。
COUNTIFS関数の書き方
COUNTIFS関数は次のように書きます。条件範囲と条件のペアを、必要な数だけ繰り返して指定します。
=COUNTIFS(条件範囲1, 条件1, 条件範囲2, 条件2, …)
| 引数 | 意味 |
|---|---|
| 条件範囲1 | 1つ目の条件を判定する対象の範囲 |
| 条件1 | 条件範囲1に対して判定する条件 |
| 条件範囲2, 条件2… | 2つ目以降の条件範囲と条件(同じ形式で追加していく) |
すべての条件範囲は同じ行数(同じ表)を指定する必要があります。条件範囲1で3行目のデータを見ているのに、条件範囲2で4行目のデータを見てしまう、といったズレがあると正しく数えられません。
具体例
次のような販売データがあるとします(F列が年、G列が区分)。
| F(年) | G(区分) | |
|---|---|---|
| 1 | 年 | 区分 |
| 2 | 2022 | A |
| 3 | 2023 | B |
| 4 | 2023 | A |
| 5 | 2024 | A |
「区分がA」かつ「年が2023以上」のデータの件数を数えたい場合、数式は次のようになります。
=COUNTIFS($G$2:$G$5, "A", $F$2:$F$5, ">=2023")
この例では、4行目(2023・A)と5行目(2024・A)が条件を満たすため、結果は2になります。2行目は年が条件を満たさず、3行目は区分が条件を満たさないため数えられません。
複数のセルにコピーして使う場合
区分ごとの集計表を作り、この数式を他の区分の行にもコピーして使いたい場合は、条件範囲($G$2:$G$5や$F$2:$F$5)を絶対参照にしておく必要があります。一方、条件として指定するセル(区分名が入ったセルなど)は、コピー先に合わせて変えたいので相対参照のままにします。参照の使い分けに自信がない人は、先に参照の記事を読んでおくとスムーズです。
条件の書き方のポイント
- 文字列を条件にする場合は
"A"のようにダブルクォーテーションで囲む - 数値の比較(以上・以下・より大きい・より小さい)を条件にする場合は
">=2023"のように、比較演算子と数値をまとめて文字列として指定する - 特定のセルの値を条件にする場合は、そのセルを直接指定できる(例:
K2)。この場合、K2セルの中に比較演算子を含めて">=2023"のように入力しておく方法もある
よくある間違い
- 条件範囲ごとに指定する行数がズレている(例:条件範囲1は2〜5行目なのに、条件範囲2は2〜6行目になっている)
- 数値の比較条件を、ダブルクォーテーションで囲まずに書いてしまう(
>=2023ではなく">=2023"と書く必要がある) - 条件範囲を相対参照のままコピーしてしまい、集計対象の範囲がずれて正しい件数が出なくなる
- COUNTIFS(複数条件)とCOUNTIF(単一条件)を混同し、条件が1つしかないのにCOUNTIFSの書き方をしようとして引数の数を間違える
まとめ
COUNTIFS関数は、条件範囲と条件のペアを必要な数だけ並べるだけで、複数条件の集計ができる便利な関数です。すべての条件範囲を同じ行数・絶対参照で指定することを意識すれば、大きなミスは防げます。
以前紹介した「Excel演習ドリル」では、COUNTIFS関数を実際にコピーしたときの計算結果を、データを見ながら自分で数える問題を用意しています。この記事を読んだあとにぜひ挑戦してみてください。
参照の考え方があやふやな人は、先にこちらの記事もあわせてご覧ください。
→ Excelの相対参照・絶対参照の違いとは?$マークの意味をわかりやすく解説
次は、データに順位をつけるRANK.EQ関数を解説していきます。


コメント