前回はCOUNTIFS・SUMIFSで使う条件式の書き方を確認しました。今回は、これらの関数で「勝ちまたは引分」のようなOR条件(または条件)を扱いたいときの工夫について解説します。草野球の成績管理表で「勝ちor引分の試合数」を1つの式で求める例をもとに、初心者向けに丁寧に説明します。
COUNTIFS・SUMIFSは本来AND条件専用
COUNTIFSやSUMIFSに複数の条件を並べると、それらは自動的に「すべての条件を満たす行だけ」を対象にします。つまり標準の動きはAND条件のみで、「Aまたは条件を満たす行」というOR条件をそのまま指定する書き方は用意されていません。
例えば、次のような式を考えてみます。
=COUNTIFS(E2:E30,"勝ち",E2:E30,"引分")
この式は「E列が勝ちであり、かつ引分でもある行」を数えようとしてしまうため、そのような行は存在せず、結果は必ず0になります。COUNTIFS・SUMIFSに複数条件を並べるほど、それはAND条件として絞り込みが厳しくなっていく、というのが標準の仕組みです。
成績管理表での実例:「勝ちor引分」の試合数を出す
大阪グーニーズの成績管理シートでは、各試合の勝敗結果をE列に「勝ち」「敗け」「引分」のいずれかで記録しているとします。
| 試合日 | 対戦相手 | 得点 | 失点 | 勝敗 |
|---|---|---|---|---|
| 4/6 | ○○ファイターズ | 5 | 3 | 勝ち |
| 4/13 | △△ベアーズ | 2 | 6 | 敗け |
| 4/20 | □□イーグルス | 4 | 4 | 引分 |
| … | … | … | … | … |
この表から「勝ちor引分」の試合数、つまり負けなかった試合数を1つの式で求めたいとき、代表的な式はこうなります。
=COUNTIFS(E2:E30,"勝ち")+COUNTIFS(E2:E30,"引分")
「勝ちの試合数」と「引分の試合数」をそれぞれ別々にCOUNTIFSで数えてから、最後に足し算するという考え方です。COUNTIFS自体にOR条件を持たせるのではなく、AND条件専用のCOUNTIFSを2回使ってから外側で合算する、というのがポイントです。
「勝ちor引分」の試合数を表示したいセル(例:成績管理シートの集計欄)をクリックして選択します。
「=COUNTIFS(E2:E30,”勝ち”)」と入力します。範囲はマウスでドラッグして指定するとミスが減ります。
続けて「+COUNTIFS(E2:E30,”引分”)」と入力します。条件を変えただけの同じ形のCOUNTIFSを、プラス記号でつなぐイメージです。
確定すると「勝ち」と「引分」を合わせた試合数がすぐに表示されます。
しくみを理解する:なぜ足し算でOR条件になるのか
COUNTIFS(E2:E30,”勝ち”)は「勝ちの試合の集合」、COUNTIFS(E2:E30,”引分”)は「引分の試合の集合」を、それぞれ独立に数えた結果です。この2つの集合は重なりません(1つの試合の勝敗は「勝ち」か「引分」のどちらか一方にしかならないため)。重なりのない2つの集合の件数を足し算すれば、それは自動的に「どちらか一方に当てはまる件数」、つまりOR条件の結果と一致します。
これがCOUNTIFS・SUMIFS自体にOR条件の機能がなくても、複数のAND条件式を組み合わせることでOR条件を再現できる理由です。もう1つの方法として、条件を配列({“勝ち”,”引分”}のように複数まとめたもの)で渡し、SUMで包んで合計するやり方もありますが、考え方の土台は同じで「別々に数えてから合算する」ことに変わりありません。
よくあるミス
「=COUNTIFS(E2:E30,”勝ち”,E2:E30,”引分”)」のように、同じ範囲に対して2つの条件を1つのCOUNTIFS内に並べてしまうミスです。これはAND条件として扱われ、両立しない条件同士のため結果が必ず0になります。OR条件にしたいときは、COUNTIFSを分けて外側で合算する必要があります。
今回の例のように条件同士が重ならない場合は足し算で問題ありませんが、例えば「打数3以上の試合」と「安打1以上の試合」のように、1つの試合が両方の条件に当てはまり得る場合、単純な足し算では同じ試合を二重に数えてしまいます。条件同士が重なるかどうかを事前に確認しておくことが大切です。
- COUNTIFS・SUMIFSに複数条件を並べると、標準ではAND条件(すべて満たす)としてしか扱われない
- OR条件(またはの条件)にしたいときは、条件ごとにCOUNTIFS・SUMIFSを分けて、最後に足し算する
- 足し算でOR条件を再現できるのは、条件同士の集合が重ならないことが前提。重なる条件では二重カウントに注意する
次回予告
次回のテーマは「複合条件集計まとめ」です。ここまで見てきたSUMIFS・COUNTIFS・AVERAGEIFSなどの条件付き集計関数を組み合わせて、月別×選手別のクロス集計表を作る実践的な設計の考え方を解説していきます。
▶︎ 次回:複合条件集計まとめ



コメント