スプレッドシートで成績表を作っていると、同じ集計結果にたどり着く式が1つとは限らないことに気づく場面があります。今回は、解決策が複数あるときに、どの関数・どの式を選べばよいかの判断基準を、具体例をもとに整理していきます。
同じ結果を出す式が複数ある場面
スプレッドシートの関数は、それぞれ得意分野が違う一方で、守備範囲が重なっている部分も多くあります。たとえば「特定の条件に一致する試合数を数える」という目的だけでも、COUNTIFSで数える方法もあれば、SUMPRODUCTで数える方法もあります。どちらも正しい結果が返りますが、式の書きやすさや、あとから条件を追加するときの柔軟さが違います。
実際に、同じ「先発かつ勝利した試合数」を数える式を2通り書いてみると、こうなります。
=COUNTIFS(C2:C30,"先発",D2:D30,"勝")
=SUMPRODUCT((C2:C30="先発")*(D2:D30="勝"))
この2つは、結果としては同じ数値を返します。では、どちらを選べばよいのでしょうか。
成績管理表での実例:先発かつ勝利した試合数を求める
投手成績シートに、登板ごとの記録が1行ずつ入っているとします。C列に「先発/救援」の区分、D列に「勝/敗/なし」の結果が入っている想定です。
| 試合日 | 投手 | 登板区分 | 勝敗 |
|---|---|---|---|
| 4/6 | TANAKA | 先発 | 勝 |
| 4/13 | SATO | 救援 | なし |
| 4/20 | TANAKA | 先発 | 敗 |
| … | … | … | … |
今回のように「AND条件だけで済む」場面であれば、次の式が扱いやすい選択になります。
=COUNTIFS(C2:C30,"先発",D2:D30,"勝")
SUMPRODUCTでも同じ数値は出せますが、条件がAND条件だけなら、専用に作られたCOUNTIFSのほうが式の意図がひと目で伝わります。一方で、以前扱った「勝ちor引分の試合数」のようにOR条件が絡む場面では、COUNTIFSだけでは表現しづらく、SUMPRODUCTや配列を使った工夫が必要になります。つまり「どちらが優れているか」ではなく「その場面に合っているか」で選ぶのが基本です。
選ぶときの判断ステップ
「先発かつ勝利した試合数を数えたい」のように、条件をAND・ORどちらで結びたいのかまで含めて言葉にしておきます。ここが曖昧なまま式を書き始めると、あとで条件を追加しにくくなります。
今回のCOUNTIFSとSUMPRODUCTのように、目的を満たせる式を複数書き出してみます。この時点では、どれが正解かをまだ決めなくてよいです。
あとから条件を追加する可能性があるか、式を見ただけで意図が伝わるかを比較します。条件がAND条件だけならCOUNTIFS系、OR条件が絡むならSUMPRODUCTや配列系、というように傾向で判断できます。
機能面で差がわずかな場合は、同じシート内の他のセルで使っている書き方に揃えることを優先します。表全体の一貫性は、あとで見返したときの分かりやすさに直結します。
しくみを理解する:何を基準に選ぶか
複数の式が同じ結果を返す場合、判断基準は主に次の3つに整理できます。
- 読みやすさ:式を見ただけで、何を数えているかが伝わるか
- 拡張のしやすさ:あとから条件を1つ増やしたいとき、式の作り直しが小さく済むか
- 処理の重さ:SUMPRODUCTのような配列計算は、対象範囲が広くなるほど計算負荷が上がりやすい
よくあるミス:選び方でつまずきやすい点
動作確認できた式を、深く考えずにそのまま採用してしまうケースです。あとで条件を追加しようとしたときに式の構造ごと書き直しになり、二度手間になることがあります。
同じ目的の集計なのに、あるセルはCOUNTIFS、別のセルはSUMPRODUCTというように書き方がバラバラになると、あとで表を見返す人(未来の自分を含む)が混乱しやすくなります。機能に大差がなければ、表全体の統一感を優先しましょう。
- 同じ集計結果に至る式は、1つとは限らない
- 選ぶ基準は「正しく動くか」だけでなく、読みやすさ・拡張のしやすさ・処理の重さ
- 機能差がわずかなら、表全体の書き方の統一感を優先するのも立派な判断基準
次回予告
次回のテーマは「全50回振り返り・関数チートシート」です。これまで扱ってきた関数を早見表としてまとめ、成績管理表のどこでどの関数を使ったかを一覧で振り返ります。
▶︎ 次回:全50回振り返り・関数チートシート



コメント