SUMIF関数の練習問題(全5問)
色のついたセルに数式を入力して Enter。範囲はドラッグでも選べます。
営業部の売上を合計する
C8 に、部署が「営業」の人の売上合計を求めてください。
ヒント 1
「=SUMIF(条件の範囲, 条件, 合計する範囲)」の形です。判断するのは B列、足すのは C列。
ヒント 2
「=SUMIF(B2:B6,"営業",C2:C6)」と書きます。合計する範囲は最後です。
解説を見る
SUMIF は B列を上から順に見て、「営業」だった行と同じ位置の C列だけを足します。120・200・150 が対象で、開発の80と90は足されません。範囲が2つ出てくるのは、判断する列と足す列が別だからです。
模範解答: =SUMIF(B2:B6,"営業",C2:C6)
150以上の売上だけを合計する
C8 に、売上が150以上のものだけの合計を求めてください。判断する列と足す列が同じ場合の書き方です。
ヒント 1
判断する列と足す列がどちらも C列です。この場合、3つめは省略できます。
ヒント 2
「=SUMIF(C2:C6,">=150")」。記号を含む条件は " で囲みます。
解説を見る
3つめを省略すると、1つめの範囲がそのまま合計する範囲として使われます。200 と 150 が対象で合計 350 です。「=SUMIF(C2:C6,">=150",C2:C6)」と書いても同じ結果ですが、同じ範囲を2回書く必要はありません。別の列を足したいときだけ3つめを書きます。
模範解答: =SUMIF(C2:C6,">=150")
基準額をセルから読む
B9 に、C列の売上のうち B8 の基準額以上のものの合計を求めてください。B8 を書き換えたら合計も変わるようにします。
ヒント 1
「">=B8"」と書くと、B8 という「文字」と比べてしまい 0 になります。
ヒント 2
記号とセルを & でつなぎます。「=SUMIF(C2:C6,">="&B8)」。
解説を見る
記号は " の中、セルは " の外に置き、& でつなぎます。B8 が 150 なら、つないだ結果は「>=150」という文字列になり、直接書いたときと同じものが渡ります。COUNTIF と条件の書き方はまったく同じです。
模範解答: =SUMIF(C2:C6,">="&B8)
部署と売上の両方で絞る
C8 に、部署が「営業」かつ売上が150以上のものの合計を求めてください。引数の並びに注意してください。
ヒント 1
条件が2つ以上のときは SUMIFS を使います。
ヒント 2
SUMIFS は合計する範囲が「最初」です。「=SUMIFS(C2:C6,B2:B6,"営業",C2:C6,">=150")」。
解説を見る
SUMIF は合計する範囲が最後、SUMIFS は最初です。ここが入れ替わるのが最大のつまずきどころです。対象になるのは鈴木の200と高橋の150で、合計350です。条件が1つでも SUMIFS は使えるので、書き方を SUMIFS に統一してしまうのも手です。
模範解答: =SUMIFS(C2:C6,B2:B6,"営業",C2:C6,">=150")
「りんご」で始まる商品を合計する
B8 に、商品名が「りんご」で始まるものの金額合計を求めてください。
ヒント 1
* は「0文字以上の任意の文字」を表します。
ヒント 2
「りんご」で始まるものは「"りんご*"」と書きます。
解説を見る
「りんご*」は「りんご」で始まるものだけに一致します。「青りんご」は途中に含むだけなので対象外です。含むかどうかで合計したいときは「*りんご*」と書きます。ワイルドカードの使い方は COUNTIF とまったく同じです。
模範解答: =SUMIF(A2:A6,"りんご*",B2:B6)
SUMIF関数は、条件に合う行だけを選んで、その金額や数量を合計する関数です。
- 書き方
=SUMIF(条件の範囲, 条件, 合計する範囲)- 例
=SUMIF(B2:B6,"営業",C2:C6)
SUMIF関数とは
SUMIF(サムイフ)関数は、条件に合う行だけを選んで合計する関数です。
SUM は範囲の中を無条件に足しました。COUNTIF は条件に合うものを数えました。SUMIF はその2つを合わせたもので、条件で絞ってから足します。
営業部だけの売上、4月分だけの経費、A商品だけの数量。明細が縦に並んだ表から集計表を作るとき、必ず使うことになります。
3つの引数
=SUMIF(条件の範囲, 条件, 合計する範囲)
| 位置 | 意味 |
|---|---|
| 1つめ | 条件を照らし合わせる範囲 |
| 2つめ | 条件 |
| 3つめ | 実際に足す範囲 |
範囲が2つ出てくるのが COUNTIF との違いです。「どこを見て判断するか」と「どこを足すか」が別の列になるためです。
=SUMIF(B2:B6,"営業",C2:C6)
これは「B列が営業になっている行の、C列を合計する」という意味になります。B列を上から順に見て、「営業」だった行と同じ位置の C列の値だけを足していきます。
合計する範囲は省略できることがある
判断する列と足す列が同じときは、3つめを省略できます。
=SUMIF(C2:C6,">=150")
「C列のうち150以上のものだけを合計する」という意味です。書かなかった場合、1つめの範囲がそのまま合計する範囲として使われます。
省略できるのはこの場合だけです。別の列を足したいなら3つめは必須です。
つまずきポイント1: SUMIFS は引数の並びが逆
条件を2つ以上にしたいときは SUMIFS を使います。ここが SUMIF 最大のつまずきどころです。
=SUMIF (条件の範囲, 条件, 合計する範囲) ← 合計する範囲が「最後」
=SUMIFS(合計する範囲, 条件の範囲, 条件, …) ← 合計する範囲が「最初」
合計する範囲の位置が、前と後ろで入れ替わります。
なぜこうなっているかというと、SUMIFS は条件を何組でも増やせるからです。増える部分をうしろに置く必要があり、合計する範囲は先頭に固定されました。SUMIF のほうが先に生まれた関数で、あとから作られた SUMIFS が並びをそろえられなかった、という事情です。
実際に書くとこうなります。同じ「営業部の売上合計」でも並びが違います。
=SUMIF(B2:B6,"営業",C2:C6) → 470
=SUMIFS(C2:C6,B2:B6,"営業") → 470
迷ったら SUMIFS だけを使うのも手です。 条件が1つでも SUMIFS は問題なく動きます。書き方を1つに統一してしまえば、並びを取り違える余地がなくなります。
つまずきポイント2: セルを条件にするときは & でつなぐ
条件の書き方は COUNTIF とまったく同じです。記号を含む条件は " で囲んで文字列として渡します。
=SUMIF(B2:B6,">=60")
セルに入れた基準値を条件にしたいときは、記号とセルを & でつなぎます。
=SUMIF(B2:B6,">=B8") ← 間違い。0 になる
=SUMIF(B2:B6,">="&B8) ← 正しい
前者は「B8 という文字以上のもの」を探してしまい、数値はどれも当てはまらず 0 になります。記号は " の中、セルは " の外。 詳しくは COUNTIF関数の使い方 で説明しています。
ワイルドカードも同じように使えます。=SUMIF(A2:A6,"田*",C2:C6) で「田」から始まる名前の行だけを合計できます。
つまずきポイント3: 範囲の行数はそろえる
条件の範囲と合計する範囲は、同じ行数にしてください。
=SUMIFS(C2:C6,B2:B5,"営業") → #VALUE!
SUMIFS は行数がそろっていないとエラーになります。黙って計算されるより、この動きのほうが安全です。行がずれたまま出た数を、正しい答えだと思い込まずに済みます。
見出し行を含めてしまう B1:B6 と C2:C6 の組み合わせも、行数が違うのでエラーになります。数式を書いたら、範囲の開始行と終了行が全部同じかを目で確かめてください。
文字が混ざっていても合計は止まらない
合計する範囲に「欠席」「未定」といった文字が入っていても、SUMIF はエラーにならずにその行を飛ばして計算します。
80 / 55 / 60 / 92 / 欠席
=SUMIF(B2:B6,">=60") → 232
条件の判定でも文字は数値と比べられないため対象から外れ、合計にも入りません。これは SUM が文字を無視するのと同じ考え方です。
便利ですが、合計が思ったより少ないときは、文字が混ざった行を疑ってください。
関連する関数
| 関数 | 用途 |
|---|---|
SUM |
条件なしで合計する。SUMIF の出発点 |
SUMIFS |
条件を複数にする。合計する範囲が先頭 |
COUNTIF / COUNTIFS |
条件に合うものを数える |
AVERAGEIF |
条件に合うものの平均を出す。引数の並びは SUMIF と同じ |
次に進むには
条件で数える・合計する、が両方できるようになりました。集計の形はここでほぼ出そろっています。
明細から集計表を作るときは、VLOOKUP と組み合わせる場面がよく出てきます。合わせて読んでおくと、実務の表がぐっと作りやすくなります。