Googleスプレッドシートの SUMIF・COUNTIF関数の使い方(条件範囲の指定ミスも解説)

「特定の担当者の売上だけ合計したい」「条件に合うデータの件数を数えたい」
そんなとき役立つのがSUMIF関数とCOUNTIF関数です。

構文自体はそれほど難しくないのに、いざ使ってみると「なぜかエラーにもならないのに数字が合わない」という謎の不具合に悩まされることがあります。

実はこの手のトラブルの多くは、条件範囲の指定ミスが原因です。

この記事では、SUMIF・COUNTIF関数の基本の使い方から、複数条件を扱うSUMIFS・COUNTIFS関数、そして初心者が特につまずきやすい条件範囲の指定ミスとその対処法まで、会話形式で解説していきます。

SUMIF関数とCOUNTIF関数、それぞれ何をする関数なの?

リュージ、売上表から「東京支店」の売上だけ合計したいんだけど、1件ずつ拾って電卓で計算するのが大変で…。

それはSUMIF関数の出番だね。構文は「=SUMIF(範囲, 条件, 合計範囲)」。例えばA列に支店名、B列に売上金額が入っているなら、「=SUMIF(A2:A10,”東京支店”,B2:B10)」と入力すれば、東京支店の売上だけを自動で合計してくれるよ。

合計じゃなくて、「東京支店のデータが何件あるか」を数えたい場合は?

それはCOUNTIF関数だね。構文は「=COUNTIF(範囲, 条件)」とSUMIFよりシンプル。「=COUNTIF(A2:A10,”東京支店”)」と入力すれば、東京支店のデータが何件あるかを数えてくれるよ。合計金額を出すのがSUMIF、件数を数えるのがCOUNTIF、と覚えておくとわかりやすい。

「〇〇以上」みたいな数値の条件でも使える?

使えるよ。「=SUMIF(B2:B10,”>=50000″,B2:B10)」のように比較演算子を使えば、5万円以上の売上だけを合計できる。文字列でも数値の比較でも、条件は必ずダブルクォーテーションで囲むのがポイントだよ。

SUMIF関数は「=SUMIF(範囲,条件,合計範囲)」という構文で、指定した条件に一致するデータだけを合計する。COUNTIF関数は「=COUNTIF(範囲,条件)」で、条件に一致するデータの件数を数える。文字列条件はもちろん、「">=50000"」のような比較演算子を使った数値条件も指定でき、いずれも条件部分はダブルクォーテーションで囲む必要がある。

複数条件を指定したいときはどうすればいい?

「東京支店」かつ「4月」の売上、みたいに条件を2つ以上組み合わせたいときはどうするの?

その場合はSUMIFS関数を使うよ。構文が少し変わって「=SUMIFS(合計範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, …)」となる。SUMIFとは違って、最初の引数が「合計したい範囲」になる点に注意してね。

あれ、SUMIFとSUMIFSで引数の順番が違うの?ややこしい…。

そうなんだ、そこが混乱しやすいポイント。実は条件が1つしかない場合でも、SUMIFの代わりにSUMIFSを使って構わないんだよ。「=SUMIFS(B2:B10,A2:A10,”東京支店”)」のように書けば、SUMIFと同じ結果になる。むしろ普段からSUMIFSに統一しておくと、あとで条件を追加したくなったときにも数式を書き直しやすくて楽だよ。

COUNTIFにも「S」付きバージョンがあるんだよね?

その通り、COUNTIFSだよ。こちらはCOUNTIFと引数の並び順が同じだから混乱しにくい。「=COUNTIFS(条件範囲1,条件1,条件範囲2,条件2,…)」という形で、条件範囲と条件のペアを追加していくだけだよ。

複数条件を扱う場合はSUMIFS関数・COUNTIFS関数を使う。SUMIFS関数は「=SUMIFS(合計範囲,条件範囲1,条件1,条件範囲2,条件2,...)」という構文で、SUMIF関数とは引数の並び順が異なる点に注意が必要である。一方COUNTIFS関数は「=COUNTIFS(条件範囲1,条件1,条件範囲2,条件2,...)」とCOUNTIF関数と同じ並び順のため混乱しにくい。条件が1つの場合でも「S」付きの関数で代用できるため、あらかじめSUMIFS・COUNTIFSに統一しておくと、後から条件を追加したくなった際にも数式を修正しやすい。

数式は合ってるはずなのに、計算結果がおかしい…?

教わった通りにSUMIFを入力したんだけど、明らかに合計金額が少ないんだよね。エラーは出てないのに…。

それ、SUMIF・COUNTIF関数で一番厄介なパターンなんだ。エラー表示が出ないから「数式は正しく動いている」と思い込んでしまうんだけど、実は静かに間違った計算結果を返していることがある。まず確認してほしいのが、「範囲」と「合計範囲」の行数がちゃんと一致しているかどうかだよ。

行数が違うと、エラーにならないの?てっきりエラーになるものだと思ってた…。

ここが本当に危ないところ。例えば「=SUMIF(A2:A10,”東京支店”,B2:B15)」のように、範囲がA2:A10(9行)なのに合計範囲がB2:B15(14行)とズレていても、エラーにはならずそのまま計算が実行されてしまう。範囲の左上のセルを基準に、範囲と同じ行数分だけ合計範囲がずれて解釈されるから、意図しないセルの値まで合計に含まれたり、逆に必要なデータが抜けたりするんだ。

それは怖い…!エラーにならないなら、自分じゃ絶対気づけないよ。どうやって防げばいいの?

一番確実なのは、範囲を指定するときにドラッグで選択せず、列全体(A:AやB:Bのような指定)を使う方法。「=SUMIF(A:A,”東京支店”,B:B)」のように書けば、行数を数え間違えることがなくなる。あとは数式を入力したあとに、範囲と合計範囲の行数が一致しているかを一度見直す癖をつけることだね。

SUMIF・COUNTIF関数で最も危険な落とし穴は、「範囲」と「合計範囲」の行数がズレていてもエラーにならず、静かに誤った計算結果を返してしまう点である。範囲の左上のセルを基準に合計範囲がずれて解釈されるため、意図しないデータが計算に含まれたり抜け落ちたりする。対策として、セル範囲をドラッグで指定する代わりに列全体(A:AやB:Bなど)を指定する方法が有効であり、数式入力後は範囲同士の行数が一致しているかを確認する習慣をつけたい。

数式をコピーしたら範囲がズレた…それも指定ミス?

1行目でSUMIFを作って、それを下の行にコピーしたら、なぜか結果が全部おかしくなったんだけど…。

それは絶対参照の付け忘れが原因だね。以前IF関数のときにも話したけど、数式をコピーすると、参照しているセルの位置は自動的にずれていく「相対参照」がデフォルトの動きなんだ。集計元の範囲(A2:A10やB2:B10)は、コピーしても常に同じ場所を見てほしいから、「$A$2:$A$10」のように「$」をつけて固定する必要がある。

じゃあ条件のほうは固定しなくていいの?例えば「東京支店」の条件セルを別のセルで参照してる場合とか。

いい質問。もし各行で条件を変えたい(1行目は東京支店、2行目は大阪支店…)場合は、条件セルの参照はあえて相対参照のままにしておく。逆に「常に同じ条件セルを見てほしい」なら、条件セルの方にも「$」をつけて固定する。集計範囲は固定、条件は用途に応じて固定するかしないか使い分ける、というイメージだよ。

条件をセル参照で「5万円以上」みたいに指定したいときは、どう書けばいいの?

その場合は比較演算子とセル参照を「&」でつなげる書き方をするよ。基準となる金額がD1セルに入っているなら、「=SUMIF(B2:B10,”>=”&D1,B2:B10)」のように書く。「”>=”&D1」の部分、演算子部分だけをダブルクォーテーションで囲んで、セル参照は外に出して&で結合するのがポイントだよ。

数式を下の行にコピーする際は、集計対象の範囲(範囲・合計範囲)を絶対参照($A$2:$A$10のような書き方)で固定しておかないと、コピーするたびに範囲がずれてしまう。一方、条件セルは行ごとに条件を変えたい場合は相対参照のままにし、常に同じセルを参照したい場合は絶対参照にするなど、用途に応じて使い分ける。また比較演算子とセル参照を組み合わせる場合は、「">="&D1」のように演算子部分のみをダブルクォーテーションで囲み、セル参照を「&」で連結する書き方が必要になる。

まとめ:SUMIF・COUNTIF関数の使い方&ミス防止 早見表

やりたいこと・困りごと対処法
条件に合うデータを合計したい=SUMIF(範囲,条件,合計範囲)
条件に合うデータの件数を数えたい=COUNTIF(範囲,条件)
複数条件で合計したい=SUMIFS(合計範囲,条件範囲1,条件1,…)(引数順に注意)
複数条件で件数を数えたい=COUNTIFS(条件範囲1,条件1,…)
エラーは出ないのに合計が合わない「範囲」と「合計範囲」の行数一致を確認、列全体指定も有効
数式コピーで結果がおかしくなった集計範囲を絶対参照($)で固定する
セル参照で「以上」条件を指定したい“>=”&セル参照 のように演算子と&で連結する

エラーが出ないのに結果が間違ってるパターンがあるなんて、今日教えてもらわなかったら一生気づかなかったかも…。範囲は列全体で指定するようにするよ。

SUMIF・COUNTIFはエラーメッセージに頼れない分、範囲の指定を最初から丁寧にやることが一番の対策になるよ。まずは列全体指定と絶対参照、この2つを意識するだけでもかなりミスは減らせるはずだよ。

SUMIF・COUNTIF関数は、条件に合うデータの合計や件数を自動で求められる便利な関数である。複数条件を扱う場合はSUMIFS・COUNTIFS関数を使い、SUMIFSは引数の並び順がSUMIFと異なる点に注意したい。特に注意すべきは、「範囲」と「合計範囲」の行数がズレていてもエラーにならず誤った結果を返してしまう点であり、列全体での範囲指定や絶対参照の活用によって、こうした静かな計算ミスを防ぐことができる。

関連記事

  1. スプレッドシートで家計簿を作る方法|自動計算・グラフ化・Googleフォーム連携まで解説

  2. Googleスプレッドシートの QUERY関数の使い方(SQL風の書き方でよくあるエラーも解説)

  3. スプレッドシートの日付自動入力、実は「ずれる」「変わる」の落とし穴に注意!

  4. スプレッドシートが重い・固まる時に試すべき7つの対処法

  5. Googleフォームの回答をスプレッドシートに自動反映させる方法|集計・グラフ化のコツも

  6. スプレッドシート特有のエラー表示(#N/A、#ERROR!)の解説

  7. Googleスプレッドシートの条件付き書式の使い方(複数条件・色が反映されない時の対処法も解説)

  8. Google スプレッドシートのIF関数の使い方(初心者がつまずくポイントも解説)

  9. スプレッドシートのショートカット、これだけ覚えれば仕事が変わる【厳選5つ】