指定した条件に一致する行だけを合計してくれるSUMIF関数について、使い方と内部のしくみを解説します。草野球の成績管理表で「特定の投手だけの自責点を合計したい」という場面を例に、初心者向けに丁寧に説明します。
SUMIF関数とは
「ある範囲の中で、条件に一致する行だけ」を対象に、別の範囲の数値を合計する関数です。SUM関数が範囲内すべてを合計するのに対し、SUMIFは「その中の一部だけ」を選んで合計できるのが違いです。成績管理表では「特定の選手だけ」「特定の対戦相手だけ」といった条件付きの集計場面でよく登場します。
基本の書式はこうです。
=SUMIF(条件範囲, 条件, 合計範囲)
「条件範囲」で条件に一致する行を探し、その行に対応する「合計範囲」側の数値だけを足し合わせる、という2段構えの動きになっています。
成績管理表での実例:特定投手の自責点合計を出す
大阪グーニーズの投手成績シートでは、各試合の登板記録を1行ずつ記録しています。仮に、B列に投手名、D列に自責点が入っているとします。
| 試合日 | 投手名 | 投球回 | 自責点 |
|---|---|---|---|
| 4/6 | YAMADA | 5 | 2 |
| 4/13 | SATO | 6 | 1 |
| 4/20 | YAMADA | 4 | 3 |
| … | … | … | … |
この表からYAMADA投手の自責点だけをシーズン通算で合計したいとき、式はこうなります。
=SUMIF(B2:B30,"YAMADA",D2:D30)
「B2:B30の中でYAMADAと一致する行を探し、その行に対応するD2:D30の数値だけを合計する」という計算が実行され、YAMADA投手だけの自責点合計が求まります。投手名を変えるだけで、他の投手の自責点合計にもそのまま使い回せます。
投手別の自責点合計を表示したいセル(例:投手成績シートの集計欄)をクリックして選択します。
投手名が入っているB2からB30までをマウスでドラッグすると、自動で「B2:B30」の部分が入力されます。続けてカンマを打ちます。
対象にしたい投手名を、たとえば「”YAMADA”」のように半角ダブルクォーテーションで囲んで入力します。文字列の条件は必ずこのクォーテーションが必要です。
自責点が入っているD2からD30までをドラッグして選択し、括弧を閉じて確定すると、条件に一致した行だけの合計値がセルに表示されます。
しくみを理解する:SUMIFは何をしているのか
SUMIFは、条件範囲を1行ずつ上から順に見ていき、「条件に一致する行かどうか」をまず判定します。一致した行だけ、その同じ行番号にある合計範囲側の数値を足す、という動きを範囲の最後まで繰り返しているだけです。
- 条件範囲と合計範囲は同じ行数で対応させる必要がある(何行目が一致したかを見て、同じ何行目の合計範囲側を足すため)
- 条件に一致しない行は、合計範囲側にどんな数値が入っていても無視される
- 文字列の条件は完全一致で判定される(大文字・小文字は区別されないが、余分なスペースがあると一致しないことがある)
よくあるミス:条件に一致しているはずなのに0になる原因
条件範囲を「B2:B30」、合計範囲を「D3:D31」のように、開始行や終了行を1行ずつズラして指定してしまうケースです。行の対応が1つずつ噛み合わなくなり、正しくない数値が合計されてしまいます。
同じ投手のつもりでも、ある試合では「YAMADA」、別の試合では「山田」のように表記が揺れていると、SUMIFはそれぞれ別の文字列として扱い、片方しか合計されません。投手名は入力時に統一しておく、あるいはプルダウンリストで選ばせる形にしておくと安心です。
- SUMIF関数は「条件範囲・条件・合計範囲」の3つを指定し、条件に一致した行だけを合計する関数
- 条件範囲と合計範囲は同じ行数で対応させる必要がある(ズレると誤集計の原因になる)
- 成績管理表では、行数のズレと文字列の表記ゆれが「合計が合わない・0になる」の2大原因
次回予告
次回のテーマは「SUMIFS関数」です。SUMIFが1つの条件だけを扱えるのに対し、複数の条件をAND条件で組み合わせて合計できるSUMIFSを、「対戦相手×年度」別の得点合計を例に解説していきます。
▶︎ 次回:SUMIFS関数の使い方としくみ


コメント