複数の条件をすべて満たす行だけを数えたいとき、COUNTIFS関数を使います。草野球の成績管理表で「先発かつ勝利」の試合数を数える場面を例に、使い方と内部のしくみを解説します。
COUNTIFS関数とは
複数の条件をすべて満たす行だけを数える関数です。COUNTIFが「1つの条件でカウント」だったのに対し、COUNTIFSは「条件を2つ以上重ねてカウント」できるのが特徴です。
基本の書式はこうです。
=COUNTIFS(条件範囲1, 条件1, 条件範囲2, 条件2, ...)
「条件範囲」と「条件」をセットで指定し、そのセットを増やすほど条件を追加できます。すべての条件に一致した行だけがカウント対象になります。
成績管理表での実例:先発かつ勝利の試合数を数える
大阪グーニーズの投手成績シートに、試合ごとの登板記録が1行ずつ入っているとします。E列に「先発かどうか」(先発なら「○」)、F列に「勝敗」(勝ち・負け・引分のいずれか)が入っている想定です。
| 試合日 | 投手名 | 先発 | 勝敗 |
|---|---|---|---|
| 4/6 | SATO | ○ | 勝 |
| 4/13 | SATO | ○ | 負 |
| 4/20 | SATO | 勝 | |
| … | … | … | … |
この中から「先発(E列が○)かつ勝利(F列が勝)」の試合数だけを数えたいとき、式はこうなります。
=COUNTIFS(E2:E30,"○",F2:F30,"勝")
これで「E列が○」かつ「F列が勝」の両方を満たす行だけが数えられ、先発で勝ち投手になった試合数が求まります。
先発勝利数を表示したいセル(例:投手成績シートの集計欄)をクリックして選択します。
E2からE30をドラッグで選択し、続けてカンマの後に条件として「”○”」と入力します。
同様にF2からF30をドラッグし、条件として「”勝”」を入力します。条件のセットはこのように何組でも追加できます。
式を確定すると、条件をすべて満たす試合数がその場で表示されます。
しくみを理解する:COUNTIFSは何をしているのか
COUNTIFSは、指定した行を1行ずつ見ていき、「すべての条件範囲・条件のペアに一致するか」を確認し、一致した行だけを1件としてカウントしています。つまり内部では、複数の条件をAND(かつ)でつないでいる状態です。
- 条件はすべてAND条件でつながる(1つでも条件から外れる行はカウントされない)
- 条件範囲はすべて同じ行数にする必要がある(E2:E30とF2:F30のように、範囲の開始行・終了行を揃える)
- SUMIFSと構文がほぼ同じ(「条件範囲・条件」のペアを並べる書き方が共通している。SUMIFSは合計する範囲を先頭に指定するのに対し、COUNTIFSにはその引数がない点だけが違い)
よくあるミス:カウントが合わない原因
E2:E30とF2:F31のように、条件範囲同士の行数が1行でもズレていると、正しく計算できずエラーになります。範囲を追加・変更するときは、必ずすべての条件範囲を同じ行数に揃えてください。
「先発または勝利」のようなOR(または)条件を数えたい場合、COUNTIFSをそのまま並べただけではAND条件にしかなりません。「勝ちまたは引分」のようなOR条件を1つの式で数える工夫は、別の回で改めて解説します。
- COUNTIFSは「複数の条件をすべて満たす行だけを数える」関数
- 条件はすべてAND条件でつながる(1つでも外れるとカウントされない)
- 条件範囲の行数を揃えることが、エラーを防ぐ最大のポイント
次回予告
次回のテーマは「AVERAGEIF関数」です。条件付きで平均を求める仕組みを、先発登板時のみの防御率平均を例に解説していきます。
▶︎ 次回:AVERAGEIF関数の使い方としくみ


コメント