- クラウドサービス
スプレッドシートのSUMIFS・COUNTIFSの使い方|条件別の数式一覧
SUMIFS は「すべての条件を満たす行の合計」、COUNTIFS は「すべての条件を満たす行の件数」を返す関数です。 違いは先頭に合計範囲があるかどうかだけで、条件の書き方は2つの関数で共通です。条件の書き方を1つ覚えると、合計にも件数にもそのまま使えます。
この記事では、同じサンプル表に対する数式を SUMIFS と COUNTIFS の2列で並べ、計算した値を添えています。後半では、思った値にならないときの対処表と、QUERY・FILTER・SUMPRODUCT との選び方をまとめます。
確認環境:構文と注意書きは Google ドキュメント エディタ ヘルプ(SUMIFS、COUNTIFS、SUMIF、COUNTIF、ARRAYFORMULA、FILTER、SUMPRODUCT、QUERY、チェックボックス)を 2026-10-06 に開いて確認しました。掲載している計算値は、同じ表と同じ数式を LibreOffice Calc 24.2.7.2(Linux、ヘッドレス実行)に読み込ませて求めた値です。
この記事の結論
- 日付の範囲は、同じ日付列を2回指定します。
">="&開始セルと"<="&終了セルを並べると「開始日から終了日まで」になります。 - 比較演算子とセル参照は & でつなぎます。
">=L3"と書くと「>=L3 という文字」との比較になり、結果は 0 です。 - OR条件は、SUMIFS どうしを足します。 条件が多いときは、条件を
{"文具","用紙"}のように並べて SUM で包み、全体を ARRAYFORMULA に入れます。 - 条件範囲と合計範囲は、同じ行数でそろえます。 1行でもずれるとエラーになります。
- 0 になるときは、日付や数値が文字列で入っていないかを ISNUMBER で見ます。
SUMIFS・COUNTIFSの条件別早見表
サンプル表(次の章)に対する数式です。範囲は、合計が F2:F13、条件が各列の 2〜13 行目です。
| やりたいこと | 条件の書き方 | SUMIFS | COUNTIFS |
|---|---|---|---|
| 一致 | "佐藤" |
=SUMIFS(F2:F13,B2:B13,"佐藤") |
=COUNTIFS(B2:B13,"佐藤") |
| セルの値と一致 | L5 |
=SUMIFS(F2:F13,B2:B13,L5) |
=COUNTIFS(B2:B13,L5) |
| AND(かつ) | 範囲と条件の組を足す | =SUMIFS(F2:F13,B2:B13,"佐藤",C2:C13,"文具") |
=COUNTIFS(B2:B13,"佐藤",C2:C13,"文具") |
| 以上 | ">=10" |
=SUMIFS(F2:F13,E2:E13,">=10") |
=COUNTIFS(E2:E13,">=10") |
| セルの値以上 | ">="&L3 |
=SUMIFS(F2:F13,E2:E13,">="&L3) |
=COUNTIFS(E2:E13,">="&L3) |
| 以上かつ以下 | 同じ列を2回 | =SUMIFS(F2:F13,E2:E13,">=5",E2:E13,"<=10") |
=COUNTIFS(E2:E13,">=5",E2:E13,"<=10") |
| 日付の範囲 | ">="&L1 と "<="&L2 |
=SUMIFS(F2:F13,A2:A13,">="&L1,A2:A13,"<="&L2) |
=COUNTIFS(A2:A13,">="&L1,A2:A13,"<="&L2) |
| 今月 | EOMONTH で月初と月末 | =SUMIFS(F2:F13,A2:A13,">="&EOMONTH(TODAY(),-1)+1,A2:A13,"<="&EOMONTH(TODAY(),0)) |
=COUNTIFS(A2:A13,">="&EOMONTH(TODAY(),-1)+1,A2:A13,"<="&EOMONTH(TODAY(),0)) |
| 部分一致(含む) | "*ペン*" |
=SUMIFS(F2:F13,D2:D13,"*ペン*") |
=COUNTIFS(D2:D13,"*ペン*") |
| セルの語を含む | "*"&L4&"*" |
=SUMIFS(F2:F13,D2:D13,"*"&L4&"*") |
=COUNTIFS(D2:D13,"*"&L4&"*") |
| 〜で始まる | "ノート*" |
=SUMIFS(F2:F13,D2:D13,"ノート*") |
=COUNTIFS(D2:D13,"ノート*") |
| 〜で終わる | "*A4" |
=SUMIFS(F2:F13,D2:D13,"*A4") |
=COUNTIFS(D2:D13,"*A4") |
| 〜以外 | "<>文具" |
=SUMIFS(F2:F13,C2:C13,"<>文具") |
=COUNTIFS(C2:C13,"<>文具") |
| 〜を含まない | "<>*ペン*" |
=SUMIFS(F2:F13,D2:D13,"<>*ペン*") |
=COUNTIFS(D2:D13,"<>*ペン*") |
| 空白 | "" |
=SUMIFS(F2:F13,H2:H13,"") |
=COUNTIFS(H2:H13,"") |
| 空白以外 | "<>" |
=SUMIFS(F2:F13,H2:H13,"<>") |
=COUNTIFS(H2:H13,"<>") |
| OR(同じ列) | 関数を足す | =SUMIFS(F2:F13,C2:C13,"文具")+SUMIFS(F2:F13,C2:C13,"用紙") |
=COUNTIFS(C2:C13,"文具")+COUNTIFS(C2:C13,"用紙") |
| OR(条件を並べる) | {"文具","用紙"} |
=ARRAYFORMULA(SUM(SUMIFS(F2:F13,C2:C13,{"文具","用紙"}))) |
=ARRAYFORMULA(SUM(COUNTIFS(C2:C13,{"文具","用紙"}))) |
| AND と OR の混在 | AND の条件+並べた条件 | =ARRAYFORMULA(SUM(SUMIFS(F2:F13,B2:B13,"佐藤",C2:C13,{"文具","用紙"}))) |
=ARRAYFORMULA(SUM(COUNTIFS(B2:B13,"佐藤",C2:C13,{"文具","用紙"}))) |
| チェックあり | TRUE |
=SUMIFS(F2:F13,G2:G13,TRUE) |
=COUNTIFS(G2:G13,TRUE) |
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「スプレッドシートのSUMIFS・COUNTIFSの使い方|条件別の数式一覧」
貼り付けて試せるサンプル表
備品の注文一覧です。次のタブ区切りのデータをコピーして、新しいシートの A1 に貼り付けると、この記事の数式をそのまま試せます。
日付 担当 分類 品名 数量 金額 納品済み 備考
2026/09/03 佐藤 文具 ボールペン 黒 20 2400 TRUE
2026/09/10 鈴木 用紙 コピー用紙 A4 5 2750 TRUE 急ぎ
2026/09/18 佐藤 用紙 コピー用紙 A3 2 1800 TRUE
2026/09/25 高橋 文具 付箋 75mm 10 1500 TRUE
2026/09/30 鈴木 文具 ノート B5 12 1920 TRUE 再注文
2026/10/01 佐藤 文具 蛍光ペン 5色 4 1200 TRUE
2026/10/02 高橋 機器 USBメモリ 32GB 3 2940 FALSE
2026/10/05 鈴木 文具 ボールペン 赤 15 1800 FALSE 急ぎ
2026/10/06 佐藤 機器 マウス 2 3600 FALSE
2026/10/15 高橋 用紙 ノート A4 8 1600 FALSE
2026/10/20 佐藤 用紙 コピー用紙 A4 10 5500 FALSE 急ぎ
2026/10/31 鈴木 機器 電卓 1 1980 FALSE
| 列 | 見出し | 中身 |
|---|---|---|
| A | 日付 | 日付 |
| B | 担当 | 文字 |
| C | 分類 | 文字(文具・用紙・機器) |
| D | 品名 | 文字 |
| E | 数量 | 数値 |
| F | 金額 | 数値(合計する列) |
| G | 納品済み | TRUE / FALSE |
| H | 備考 | 文字(空白の行あり) |
条件を入れておくセルは、表の右側に次のように用意します。
開始日 2026/10/01
終了日 2026/10/15
数量の下限 10
検索語 ペン
担当 佐藤
K1 に貼り付けると、L1 が開始日、L2 が終了日、L3 が数量の下限、L4 が検索語、L5 が担当になります。
構文:違いは先頭の合計範囲だけ
Google のヘルプに載っている構文は次のとおりです。
SUMIFS(合計範囲, 条件範囲1, 条件1, [条件範囲2, 条件2, ...])
COUNTIFS(条件範囲1, 条件1, [条件範囲2, 条件2, ...])
SUMIF(範囲, 条件, [合計範囲])
| 関数 | 合計範囲の位置 | 条件の数 |
|---|---|---|
| SUMIFS | 先頭 | 1つ以上 |
| COUNTIFS | なし | 1つ以上 |
| SUMIF | 最後(省略できる) | 1つだけ |
SUMIF と SUMIFS では、合計範囲の位置が逆になります。 SUMIF は「範囲、条件、合計範囲」、SUMIFS は「合計範囲、条件範囲、条件」の順です。条件が1つでも SUMIFS で書いておくと、あとから条件を足すときに引数を並べ替えずに済みます。
=SUMIF(B2:B13,"佐藤",F2:F13)
=SUMIFS(F2:F13,B2:B13,"佐藤")
どちらも 14500 になります。
ヘルプには、SUMIFS について「合計を計算するには、行のすべての条件を満たしている必要があります」、COUNTIFS について「追加の範囲の行数と列数は、条件範囲1と同じである必要があります」と書かれています。
以上・以下・セル参照の書き方
比較演算子は、条件の文字列の先頭に付けます。ヘルプに載っている演算子は =、>、>=、<、<= です。
| 数式 | 計算値 |
|---|---|
=SUMIFS(F2:F13,E2:E13,">=10") |
13120 |
=COUNTIFS(E2:E13,">=10") |
5 |
=SUMIFS(F2:F13,E2:E13,">=5",E2:E13,"<=10") |
11350 |
=COUNTIFS(E2:E13,">=5",E2:E13,"<=10") |
4 |
基準の値をセルに置くときは、演算子だけを引用符で囲み、& でセルをつなぎます。
| 数式 | 計算値 | 説明 |
|---|---|---|
=SUMIFS(F2:F13,E2:E13,">="&L3) |
13120 | L3 の 10 以上 |
=COUNTIFS(E2:E13,">="&L3) |
5 | 同上 |
=SUMIFS(F2:F13,E2:E13,">=L3") |
0 | 「L3」という文字との比較になる |
COUNTIFS のヘルプにも、COUNTIFS(B8:B27, ">" & B12, C8:C27, "<" & C13, D8:D27, "<>10") という、& でつなぐ例が載っています。
日付の範囲・今月・先月の書き方
日付の範囲は、同じ日付列を2回指定して、開始日以上と終了日以下を並べます。
| やりたいこと | 数式 | 計算値 |
|---|---|---|
| L1 から L2 までの合計 | =SUMIFS(F2:F13,A2:A13,">="&L1,A2:A13,"<="&L2) |
11140 |
| L1 から L2 までの件数 | =COUNTIFS(A2:A13,">="&L1,A2:A13,"<="&L2) |
5 |
| 2026年10月の合計 | =SUMIFS(F2:F13,A2:A13,">="&DATE(2026,10,1),A2:A13,"<"&DATE(2026,11,1)) |
18620 |
| 2026年10月の件数 | =COUNTIFS(A2:A13,">="&DATE(2026,10,1),A2:A13,"<"&DATE(2026,11,1)) |
7 |
| 今月の合計 | =SUMIFS(F2:F13,A2:A13,">="&EOMONTH(TODAY(),-1)+1,A2:A13,"<="&EOMONTH(TODAY(),0)) |
18620 |
| 今月の件数 | =COUNTIFS(A2:A13,">="&EOMONTH(TODAY(),-1)+1,A2:A13,"<="&EOMONTH(TODAY(),0)) |
7 |
| 先月の合計 | =SUMIFS(F2:F13,A2:A13,">="&EOMONTH(TODAY(),-2)+1,A2:A13,"<="&EOMONTH(TODAY(),-1)) |
10370 |
| 先月の件数 | =COUNTIFS(A2:A13,">="&EOMONTH(TODAY(),-2)+1,A2:A13,"<="&EOMONTH(TODAY(),-1)) |
5 |
| 今日までの合計 | =SUMIFS(F2:F13,A2:A13,"<="&TODAY()) |
19910 |
| 今日までの件数 | =COUNTIFS(A2:A13,"<="&TODAY()) |
9 |
TODAY を使う行の値は、2026-10-06 に計算したものです。別の日に試すと、その日の「今月」「先月」の値になります。
- 月初 は
EOMONTH(基準日,-1)+1(前月の月末の翌日)、月末 はEOMONTH(基準日,0)です。 - 月をまたぐ範囲を DATE で書くときは、終了側を 「翌月1日より前」(
"<"&DATE(2026,11,1))にすると、月末が何日かを考えずに書けます。 - COUNTIFS のヘルプにも
"<"&DATE(1969,7,20)という、DATE 関数を & でつなぐ例があります。
部分一致・前方一致・後方一致の書き方
文字の条件ではワイルドカードが使えます。ヘルプの説明は「? は 1 文字、* はゼロ以上の連続文字」です。
| やりたいこと | 数式 | 計算値 | 一致する品名 |
|---|---|---|---|
| 「ペン」を含む合計 | =SUMIFS(F2:F13,D2:D13,"*ペン*") |
5400 | ボールペン 黒、蛍光ペン 5色、ボールペン 赤 |
| 「ペン」を含む件数 | =COUNTIFS(D2:D13,"*ペン*") |
3 | 同上 |
| L4 の語を含む合計 | =SUMIFS(F2:F13,D2:D13,"*"&L4&"*") |
5400 | 同上 |
| 「ノート」で始まる合計 | =SUMIFS(F2:F13,D2:D13,"ノート*") |
3520 | ノート B5、ノート A4 |
| 「A4」で終わる件数 | =COUNTIFS(D2:D13,"*A4") |
3 | コピー用紙 A4(2行)、ノート A4 |
| 「ノート 」+2文字の件数 | =COUNTIFS(D2:D13,"ノート ??") |
2 | ノート B5、ノート A4 |
- ? や * そのものを探すときは、ヘルプのとおり前にチルダを付けて
~?、~*と書きます。チルダ自体は~~です。 - COUNTIF のヘルプには「大文字と小文字は区別されません」とあります。今回の検算でも、
=COUNTIFS(D2:D13,"usb*")は「USBメモリ 32GB」の 1 件を数えました。
〜以外・空白・空白以外の書き方
| やりたいこと | 数式 | 計算値 |
|---|---|---|
| 文具以外の合計 | =SUMIFS(F2:F13,C2:C13,"<>文具") |
20170 |
| 文具以外の件数 | =COUNTIFS(C2:C13,"<>文具") |
7 |
| 文具でも用紙でもない合計 | =SUMIFS(F2:F13,C2:C13,"<>文具",C2:C13,"<>用紙") |
8520 |
| 文具でも用紙でもない件数 | =COUNTIFS(C2:C13,"<>文具",C2:C13,"<>用紙") |
3 |
| 「ペン」を含まない合計 | =SUMIFS(F2:F13,D2:D13,"<>*ペン*") |
23590 |
| 備考が空白の合計 | =SUMIFS(F2:F13,H2:H13,"") |
17020 |
| 備考が空白の件数 | =COUNTIFS(H2:H13,"") |
8 |
| 備考が空白以外の合計 | =SUMIFS(F2:F13,H2:H13,"<>") |
11970 |
| 備考が空白以外の件数 | =COUNTIFS(H2:H13,"<>") |
4 |
「AでもBでもない」は AND なので、同じ列に <> の条件を2つ並べます。 関数を足すのは OR のときです。
空白の件数は =COUNTBLANK(H2:H13)(8)、空白以外の件数は =COUNTA(H2:H13)(4)でも同じ値になりました。ほかの条件と組み合わせるときに、COUNTIFS の "" と "<>" が役立ちます。
OR条件・ANDとORの混在の書き方
SUMIFS と COUNTIFS の条件は、並べるとすべて AND になります。OR にしたいときは次の3つの書き方があります。
同じ列でのOR:関数を足す
=SUMIFS(F2:F13,C2:C13,"文具")+SUMIFS(F2:F13,C2:C13,"用紙")
=COUNTIFS(C2:C13,"文具")+COUNTIFS(C2:C13,"用紙")
計算値は 20470 と 9 です。同じ列の値は1行に1つなので、足しても二重に数えることはありません。
同じ列でのOR:条件を並べてSUMで包む
条件を波かっこで並べると、SUMIFS は条件ごとの結果を返します。それを SUM で合計します。
=ARRAYFORMULA(SUM(SUMIFS(F2:F13,C2:C13,{"文具","用紙"})))
=ARRAYFORMULA(SUM(COUNTIFS(C2:C13,{"文具","用紙"})))
ARRAYFORMULA は、ヘルプで「非配列関数で配列を使用したりすることができます」と説明されている関数です。並べた条件をすべて評価させるために、全体を包んでおきます。数式の編集中に Ctrl+Shift+Enter を押すと、先頭に ARRAYFORMULA( が付きます(ヘルプの記載)。
LibreOffice Calc では、同じ集計を =SUMPRODUCT(SUMIFS(F2:F13,C2:C13,{"文具","用紙"})) で求めて 20470、COUNTIFS 版で 9 になりました。
ANDとORの混在:ANDの条件はそのまま、ORの列だけ並べる
「担当が佐藤」かつ「分類が文具または用紙」の例です。
=ARRAYFORMULA(SUM(SUMIFS(F2:F13,B2:B13,"佐藤",C2:C13,{"文具","用紙"})))
=ARRAYFORMULA(SUM(COUNTIFS(B2:B13,"佐藤",C2:C13,{"文具","用紙"})))
足し算で書くと次の形で、計算値はどちらの書き方でも 10900 と 4 です。
=SUMIFS(F2:F13,B2:B13,"佐藤",C2:C13,"文具")+SUMIFS(F2:F13,B2:B13,"佐藤",C2:C13,"用紙")
=COUNTIFS(B2:B13,"佐藤",C2:C13,"文具")+COUNTIFS(B2:B13,"佐藤",C2:C13,"用紙")
別々の列でのOR:重なりを1回引く
「担当が佐藤」または「備考が急ぎ」のように列が違うと、両方に当てはまる行(10/20 の佐藤・急ぎ)が2回数えられます。両方を満たす分を1回引きます。
=SUMIFS(F2:F13,B2:B13,"佐藤")+SUMIFS(F2:F13,H2:H13,"急ぎ")-SUMIFS(F2:F13,B2:B13,"佐藤",H2:H13,"急ぎ")
=COUNTIFS(B2:B13,"佐藤")+COUNTIFS(H2:H13,"急ぎ")-COUNTIFS(B2:B13,"佐藤",H2:H13,"急ぎ")
計算値は 19050 と 7 です。SUMPRODUCT で書くと1つの式にまとまります。
=SUMPRODUCT(((B2:B13="佐藤")+(H2:H13="急ぎ")>0)*F2:F13)
=SUMPRODUCT(((B2:B13="佐藤")+(H2:H13="急ぎ")>0)*1)
こちらも 19050 と 7 になりました。
チェックボックスの列を条件にする
サンプル表の G 列には TRUE / FALSE が入っています。条件には引用符なしの TRUE、FALSE を書きます。
| 数式 | 計算値 |
|---|---|
=SUMIFS(F2:F13,G2:G13,TRUE) |
11570 |
=COUNTIFS(G2:G13,TRUE) |
6 |
=SUMIFS(F2:F13,G2:G13,FALSE) |
17420 |
=COUNTIFS(G2:G13,FALSE) |
6 |
Google のヘルプによると、チェックボックスは関数で使うことができ、[データの入力規則]の「カスタムのセル値を使用する」で、オンのときの値を「はい」、オフのときの値を「いいえ」のように変えられます。その設定にした列は、SUMIFS のヘルプの例にある =SUMIFS(C1:C100, E1:E100, "はい") の形で、文字の条件として書きます。
列全体を範囲にする書き方
行が増えていく表では、範囲を列全体にしておくと、数式を直さずに済みます。
=SUMIFS(F:F,B:B,"佐藤")
=COUNTIFS(B:B,"佐藤")
=SUMIFS(F:F,E:E,">=10")
計算値は 14500、5、13120 で、2〜13 行目を指定したときと同じでした。1行目の見出しは文字なので、数値の条件や担当名の条件には当てはまりません。
| 書き方 | 向いている場面 |
|---|---|
F2:F13 |
行数が決まっている表。範囲が目で追いやすい |
F:F |
行が増えていく表。合計範囲も条件範囲も列全体でそろえる |
列全体にするときは、合計範囲と条件範囲をどちらも列全体にします。 F:F と B2:B13 のように混ぜると行数がそろいません。
思った値にならないときの対処表
| 症状 | 原因 | 確かめ方 | 対処 |
|---|---|---|---|
| エラーになる(引数の順序) | SUMIF の順で SUMIFS を書いた | 第1引数が合計したい列かを見る | 合計範囲を先頭に移す |
| エラーになる(範囲) | 条件範囲と合計範囲の行数が違う | 各範囲の開始行と終了行を見比べる | すべて同じ行数にそろえる |
| 0 になる(日付) | 日付が文字列で入っている | =ISNUMBER(A2) が FALSE |
日付として入れ直す |
| 0 になる(数値) | 数値が文字列で入っている | =COUNT(E2:E13) が行数より少ない |
数値として入れ直す |
| 0 になる(セル参照) | ">=L3" と引用符の中にセルを書いた |
条件の引用符の位置を見る | ">="&L3 にする |
| OR のつもりが 0 | 同じ列に "文具" と "用紙" を並べた |
条件がすべて AND であることを思い出す | 関数を足すか、条件を波かっこで並べる |
| OR で多くなる | 別々の列の OR で重なりを引いていない | 両方を満たす行があるかを見る | 重なりを1回引く |
| 部分一致しない | * を付けていない | 条件が完全一致になっていないかを見る | "*語*" にする |
引数の順序をSUMIFの形で書くとエラーになる例
=SUMIFS(B2:B13,"佐藤",F2:F13)
Calc での計算値は #VALUE! でした。第1引数は合計範囲なので、正しくは =SUMIFS(F2:F13,B2:B13,"佐藤") です。
範囲の行数が違うとエラーになる例
=SUMIFS(F2:F13,B2:B12,"佐藤")
=COUNTIFS(B2:B13,"佐藤",C2:C12,"文具")
条件範囲が1行短い例です。Calc での計算値はどちらも Err:502(引数が正しくないことを示すエラー)でした。Google のヘルプでも、範囲の行数と列数は同じである必要があるとされています。範囲をコピーして使い回すときは、終了行が同じかを最初に見ます。
日付が文字列だと0になる例
サンプル表の I 列に、A 列と同じ日付を文字列として入れて試しました。
| 数式 | 計算値 |
|---|---|
=ISNUMBER(A2) |
TRUE |
=ISNUMBER(I2) |
FALSE |
=COUNT(A2:A13) |
12 |
=COUNT(I2:I13) |
0 |
=SUMIFS(F2:F13,I2:I13,">="&L1,I2:I13,"<="&L2) |
0 |
=COUNTIFS(I2:I13,">="&L1,I2:I13,"<="&L2) |
0 |
日付は内部では数値なので、ISNUMBER が TRUE、COUNT で数えられます。文字列の日付は見た目が同じでも数値ではなく、日付との大小比較に当てはまりません。
対処は、文字列を日付に変換した列を作ることです。 「2026/10/01」の形なら、年・月・日を取り出して DATE に渡します。
=DATE(LEFT(I2,4),MID(I2,6,2),RIGHT(I2,2))
この式の結果は A2 の日付と一致しました(=DATE(LEFT(I2,4),MID(I2,6,2),RIGHT(I2,2))=A2 が TRUE)。変換した列を条件範囲にすると、日付の範囲の数式がそのまま使えます。
SUMIFS・QUERY・FILTER・SUMPRODUCTの違いと選び方
同じ「10月1日から10月15日までの金額の合計」(11140)を4通りで書くと、次のようになります。
=SUMIFS(F2:F13,A2:A13,">="&L1,A2:A13,"<="&L2)
=SUMPRODUCT((A2:A13>=L1)*(A2:A13<=L2)*F2:F13)
=SUM(FILTER(F2:F13,A2:A13>=L1,A2:A13<=L2))
=QUERY(A1:H13,"select sum(F) where A >= date '2026-10-01' and A <= date '2026-10-15'",1)
SUMIFS と SUMPRODUCT は Calc で 11140 になることを確かめています。FILTER と QUERY は、Google のヘルプと Query Language のリファレンスに載っている構文に沿って書いた式です。
| 関数 | 返すもの | 条件の書き方 | 特徴 |
|---|---|---|---|
| SUMIFS / COUNTIFS | 1つの値 | ">="&L1 のような文字列 |
条件は AND。書き方が短い |
| SUMPRODUCT | 1つの値 | (A2:A13>=L1) のような式 |
列を関数で加工した条件や OR を1つの式で書ける |
| SUM + FILTER | 1つの値(FILTER 単体は該当行) | A2:A13>=L1 のような式 |
該当する行そのものも表示できる。該当なしは #N/A(ヘルプの記載) |
| QUERY | 表(見出しつき) | where 句 | group by で分類ごとの集計表を一度に作れる |
条件から選ぶ判断表
| 条件 | 選ぶもの |
|---|---|
| 条件がすべて AND で、値を1つ出したい | SUMIFS / COUNTIFS |
| 同じ列の OR が2〜3個 | SUMIFS / COUNTIFS を足す |
| 「月が10」のように、列を関数で加工して比べたい | SUMPRODUCT |
| 別々の列の OR を1つの式で書きたい | SUMPRODUCT |
| 合計だけでなく、該当する行も見たい | FILTER(合計は SUM で包む) |
| 担当ごと・分類ごとの集計表を一度に作りたい | QUERY の group by |
列を加工した条件はSUMPRODUCTで書く
SUMIFS の条件範囲には、MONTH(A2:A13) のような計算結果を渡せません。月だけで集計したいときは、日付の範囲で書くか、SUMPRODUCT を使います。
=SUMPRODUCT((MONTH(A2:A13)=10)*F2:F13)
=SUMPRODUCT((MONTH(A2:A13)=10)*1)
計算値は 18620 と 7 で、日付の範囲で書いた SUMIFS・COUNTIFS の10月分と一致しました。
担当ごとの集計表はQUERYで一度に作る
担当ごとの合計と件数を SUMIFS・COUNTIFS で出すなら、担当名を縦に並べて、数式を下へコピーします。
=SUMIFS($F$2:$F$13,$B$2:$B$13,N2)
=COUNTIFS($B$2:$B$13,N2)
N2 から下に担当名(佐藤、鈴木、高橋)を入れておく想定です。範囲は $ で固定します。
QUERY なら、担当名の一覧を用意しなくても1つの式で表になります。
=QUERY(A1:H13,"select B, sum(F), count(F) group by B",1)
Query Language のリファレンスには、集計関数として avg・count・max・min・sum が挙げられ、group by を使うときは select の各列が group by に含まれるか集計関数で包まれている必要がある、と書かれています。
同じ集計を LibreOffice Calc の SUMIFS・COUNTIFS で求めた値は次のとおりです。
| 担当 | 金額の合計 | 件数 |
|---|---|---|
| 佐藤 | 14500 | 5 |
| 鈴木 | 8450 | 4 |
| 高橋 | 6040 | 3 |
確かめて分かったこと
- 条件を波かっこで並べただけでは、先頭の条件の結果だけになりました。 Calc で
=SUMIFS(F2:F13,C2:C13,{"文具","用紙"})を単体で計算すると 8820(文具だけの合計)でした。SUM と配列として評価させる関数で包むと 20470 になります。 ""と"<>"は、件数の合計が全行数と一致しました。 空白 8 件+空白以外 4 件=12 件で、もれも重なりもありません。">=L3"はエラーにならず 0 になります。 エラーが出ないぶん気づきにくいので、0 のときは最初に引用符の位置を見ると早く見つかります。- 範囲の行数ちがいは、0 ではなくエラーとして表れます。 1行ずれただけでも値は返りません。
- 文字列の日付は、ISNUMBER と COUNT の2つで判別できました。 COUNT が行数より少なければ、その列に文字列が混ざっています。
- 列全体(F:F、B:B)で指定しても、見出し行は結果に影響しませんでした。
よくある質問
Q. SUMIFS と SUMIF の違いは? A. 条件を複数書けるのが SUMIFS、1つだけなのが SUMIF です。合計範囲の位置も違い、SUMIFS は先頭、SUMIF は最後に書きます。条件が1つでも SUMIFS で書けます。
Q. SUMIFS で日付の範囲を指定するには?
A. 同じ日付列を2回指定します。=SUMIFS(F2:F13,A2:A13,">="&L1,A2:A13,"<="&L2) のように、開始日以上と終了日以下を並べます。
Q. SUMIFS で OR 条件にするには?
A. SUMIFS どうしを足します。=SUMIFS(F2:F13,C2:C13,"文具")+SUMIFS(F2:F13,C2:C13,"用紙") の形です。条件が多いときは、条件を波かっこで並べて SUM と ARRAYFORMULA で包みます。
Q. SUMIFS や COUNTIFS が 0 になるときは?
A. 条件範囲の値が文字列になっていないかを =ISNUMBER(セル) で確かめます。あわせて、">="&L3 のように演算子とセルを & でつないでいるかを見ます。
Q. COUNTIFS で空白以外を数えるには?
A. 条件に "<>" を書きます。=COUNTIFS(H2:H13,"<>") で、何か入っているセルの件数になります。空白は "" です。
まとめ
- SUMIFS と COUNTIFS は、条件の書き方が共通です。違いは先頭の合計範囲だけです。
- 日付の範囲は、同じ列を2回指定して
">="&開始セルと"<="&終了セルを並べます。 - 演算子とセルは & でつなぎます。 引用符の中にセル番地を書くと 0 になります。
- OR は関数を足すか、条件を波かっこで並べて SUM と ARRAYFORMULA で包みます。別々の列の OR は重なりを1回引きます。
- 範囲はすべて同じ行数にそろえます。列全体で指定するなら、どの範囲も列全体にします。
- 0 のときは ISNUMBER と COUNT で、日付や数値が文字列になっていないかを確かめます。
- 集計表を一度に作るなら QUERY、列を加工した条件なら SUMPRODUCT、該当行も見たいなら FILTER を選びます。
参考・出典
- Google ドキュメント エディタ ヘルプ「SUMIFS 関数」 https://support.google.com/docs/answer/3238496?hl=ja
- Google ドキュメント エディタ ヘルプ「COUNTIFS」 https://support.google.com/docs/answer/3256550?hl=ja
- Google ドキュメント エディタ ヘルプ「SUMIF」 https://support.google.com/docs/answer/3093583?hl=ja
- Google ドキュメント エディタ ヘルプ「COUNTIF」 https://support.google.com/docs/answer/3093480?hl=ja
- Google ドキュメント エディタ ヘルプ「ARRAYFORMULA」 https://support.google.com/docs/answer/3093275?hl=ja
- Google ドキュメント エディタ ヘルプ「FILTER 関数」 https://support.google.com/docs/answer/3093197?hl=ja
- Google ドキュメント エディタ ヘルプ「SUMPRODUCT」 https://support.google.com/docs/answer/3094294?hl=ja
- Google ドキュメント エディタ ヘルプ「QUERY 関数」 https://support.google.com/docs/answer/3093343?hl=ja
- Google ドキュメント エディタ ヘルプ「チェックボックスを追加して使用する」 https://support.google.com/docs/answer/7684717?hl=ja
- Google Visualization API Query Language リファレンス https://developers.google.com/chart/interactive/docs/querylanguage
(いずれも 2026-10-06 に確認)
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「スプレッドシートのSUMIFS・COUNTIFSの使い方|条件別の数式一覧」
株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。
WE ARE HIRING
RJCで一緒に開発しながら、
成長を楽しみませんか?
RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!
- 127日年間休日
- 12時間平均残業時間
- 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!
ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。