SUMIFSは、複数の条件をすべて満たす行だけを合計する関数です。
「東京の、商品Aの、4月分の売上」のように条件が重なる集計で使います。SUMIF の複数条件版ですが、引数の順番が逆なので注意が必要です。
書式
=SUMIFS(合計する範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], ...)
| 引数 | 内容 |
|---|---|
| 合計する範囲 | 最初に書く。実際に足す列 |
| 条件範囲/条件 | ペアで並べる。いくつでも追加できる |
SUMIF とは順番が逆です。
=SUMIF(条件範囲, 条件, 合計範囲) ← 合計範囲が最後
=SUMIFS(合計範囲, 条件範囲, 条件) ← 合計範囲が最初
これが最も多い間違いの原因です。条件が1つでも常にSUMIFSを使う、と決めてしまえば混同しません。後から条件を足すときも書き直しが不要になります。
基本の使い方
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 日付 | 支店 | 商品 | 売上 |
| 2 | 2026/4/3 | 東京 | A | 1200 |
| 3 | 2026/4/8 | 大阪 | A | 800 |
| 4 | 2026/5/2 | 東京 | B | 1500 |
| 5 | 2026/5/9 | 東京 | A | 950 |
東京かつ商品Aの売上を合計します。
=SUMIFS(D2:D5, B2:B5, "東京", C2:C5, "A")
結果:2150(1200 + 950)
条件はすべて満たす必要があります(AND条件)。
条件の書き方
SUMIF と同じです。
| 条件 | 意味 |
|---|---|
"東京" |
完全一致 |
">1000" |
1000より大きい |
">=1000" |
1000以上 |
"<>東京" |
東京以外 |
"東*" |
「東」で始まる |
"*営業*" |
「営業」を含む |
"" |
空欄 |
"<>" |
空欄でない |
セルの値と比較するときは & で連結します。
=SUMIFS(D:D, D:D, ">"&G1)
">G1" と書くと文字列の「G1」を探します。 ここが最頻出の間違いです。
日付の期間を指定する
SUMIFSが最も活きるのがこれです。同じ列に2つの条件を付けられます。
=SUMIFS(D:D, A:A, ">="&DATE(2026,4,1), A:A, "<"&DATE(2026,5,1))
「4月1日以上、かつ5月1日未満」=4月分です。
上限は < で翌月1日を指定するのが安全です。<= で4月30日を指定すると、時刻を含むデータ(4月30日 15:00 など)が漏れます。ここは実務でよく起きる漏れです。
セルで期間を指定するなら次の形です。
=SUMIFS(D:D, A:A, ">="&G1, A:A, "<="&G2)
日付を文字列で直接書く(">=2026/4/1")のは避けてください。 環境によって解釈が変わります。DATE() かセル参照を使ってください。
集計表を作る
行に支店、列に月を置いたクロス集計表は、SUMIFSと絶対参照の組み合わせで作れます。
=SUMIFS($D:$D, $B:$B, $F2, $A:$A, ">="&G$1, $A:$A, "<"&EOMONTH(G$1,0)+1)
- -
$F2… 行方向は支店名(列を固定) - -
G$1… 列方向は月初日(行を固定) - - EOMONTH で月末を求め、+1して翌月1日にしている
この1本を作って全方向にコピーすれば、集計表が完成します。 $ の付け方が肝なので、まず1セルで正しく動くことを確認してからコピーしてください。
OR条件を書きたいとき
SUMIFSはAND条件専用です。「東京または大阪」を出したいときは、次のいずれかを使います。
1. 足し算する
=SUMIFS(D:D, B:B, "東京") + SUMIFS(D:D, B:B, "大阪")
条件が2〜3個なら、これが最も分かりやすい。
2. 配列で渡してSUMで包む
=SUM(SUMIFS(D:D, B:B, {"東京","大阪"}))
{} の中に候補を並べると、それぞれの結果が配列で返り、SUMで合計されます。候補が多いときはこちらが短いです。
3. 別リストと組み合わせる
候補が可変なら、SUMPRODUCT や QUERY のほうが保守しやすくなります。
=QUERY(A:D, "select sum(D) where B matches '東京|大阪'", 1)
よくある失敗
0になる・合計が合わない
1. 引数の順番が逆
合計する範囲を最後に書いていませんか。SUMIFSは合計範囲が最初です。
2. 範囲の行数がずれている
合計範囲が D2:D100、条件範囲が B2:B50 のように長さが違うとエラーか誤答になります。すべての範囲の開始行と行数を揃えてください。 列全体(D:D、B:B)で統一するのが最も安全です。
3. 余分なスペース・全角半角
"東京 " と "東京" は別物です。"A" と "A" も別物です。
4. 数値が文字列になっている
セルが左寄せなら文字列です。COUNT で確認できます。
5. 日付に時刻が含まれている
<= で月末を指定すると、時刻付きのデータが漏れます。< で翌月1日を指定してください。
#VALUE! が出る
範囲の大きさが揃っていません。すべての範囲を同じ行数にしてください。
Excelとの違い
書式・挙動ともにExcelと同じです。 {} による配列渡しも共通です。
Googleスプレッドシート特有の選択肢として、QUERY があります。条件が複雑になったり、グループ別の集計表を一度に作りたい場合は、SUMIFSを並べるよりQUERYのほうが短く書けます。
=QUERY(A:D, "select B, sum(D) where A >= date '2026-04-01' group by B", 1)
支店ごとの合計が一度に出ます。SUMIFSを支店の数だけ並べる必要がありません。
まとめ
- - 書式は
=SUMIFS(合計範囲, 条件範囲1, 条件1, ...) - - 合計範囲が最初。SUMIF とは逆
- - 条件が1つでもSUMIFSで書くと決めれば混同しない
- - 期間指定は
">="&DATE(...)と"<"&DATE(翌月1日) - - OR条件は足し算か
{}で渡す - - 範囲の行数は必ず揃える
コメントを残す