集計
SUMIF関数の使い方・読み方
読み方:SUMIF は「サムイフ」と読みます。(一般的な読み方です。公式に読み仮名の定めはありません)
SUMIFは、条件に合う行だけを合計する関数です。「東京の売上だけ足したい」「A商品の数量だけ数えたい」といった集計で使います。
このページの中身(25項目)
この記事の書式と対応環境の出どころ(2026-08-26 確認)
- Google スプレッドシート ヘルプ:公式の書式は
SUMIF(範囲, 条件, 合計範囲)
https://support.google.com/docs/answer/3093583 - Microsoft サポート:SUMIF 関数
https://support.microsoft.com/ja-jp/excel/functions/sumif-function
関数の仕様は追加・変更されることがあります。書式が合わないときは、上の公式ページで最新をご確認ください。
Excel・Googleスプレッドシートの両方でまったく同じ書き方で動きます。

書式
=SUMIF(条件の範囲, 条件, [合計する範囲])
| 引数 | 内容 |
|---|---|
| 条件の範囲 | 条件を判定する列 |
| 条件 | 判定の内容。文字列や比較式は " で囲む |
| 合計する範囲 | 実際に足す列。省略すると条件の範囲を合計 |
引数の順番に注意してください
条件の範囲が先、合計する範囲が後です。SUMIFS は逆順(合計する範囲が先)なので、混同しやすいところです。
基本の使い方
| A | B | C | |
|---|---|---|---|
| 1 | 支店 | 商品 | 売上 |
| 2 | 東京 | A | 1200 |
| 3 | 大阪 | A | 800 |
| 4 | 東京 | B | 1500 |
| 5 | 大阪 | B | 950 |
東京の売上だけを合計します。
=SUMIF(A2:A5, "東京", C2:C5)
結果:2700(1200 + 1500)
A列から「東京」を探し、その行のC列を足しています。
条件をセル参照にすれば、入力で切り替えられます。
=SUMIF(A:A, E1, C:C)
E1に支店名を入れると、その支店の合計が出ます。列全体で指定すれば、行が増えても数式を直す必要がありません。

条件の書き方
条件はただの一致だけでなく、比較や部分一致も書けます。
| 条件 | 意味 |
|---|---|
"東京" | 東京と完全一致 |
">1000" | 1000より大きい |
">=1000" | 1000以上 |
"<>東京" | 東京以外 |
"東*" | 「東」で始まる(前方一致) |
"*店" | 「店」で終わる(後方一致) |
"*営業*" | 「営業」を含む |
"?京" | 2文字で2文字目が「京」 |
比較演算子は必ず " の中に入れます
=SUMIF(C2:C5, >1000) はエラーになります。">1000" と書いてください。
セルの値と比較したいとき
比較演算子とセル参照を組み合わせるには、& で連結します。
=SUMIF(C2:C5, ">"&E1)
E1に1000が入っていれば「1000より大きい」の意味になります。">E1" と書くと、文字列の「E1」を探しに行ってしまうので注意してください。ここは最も間違えやすい箇所です。
ワイルドカード
* は任意の文字列、? は任意の1文字です。
=SUMIF(B2:B5, "A*", C2:C5)
商品名が「A」で始まるものだけ合計します。
* や ? そのものを検索したい場合は、前に ~ を付けます("~*")。
日付を条件にする
日付は文字列として書くと期待通りに動かないことがあります。DATE 関数か、セル参照を使うのが確実です。
=SUMIF(A2:A100, ">="&DATE(2026,4,1), C2:C100)
「特定の月だけ」を出したい場合は、範囲の上限と下限が要ります。SUMIFは条件を1つしか取れないので、引き算で表現します。
=SUMIF(A:A, ">="&DATE(2026,4,1), C:C) - SUMIF(A:A, ">="&DATE(2026,5,1), C:C)
4月以降の合計から5月以降の合計を引く=4月分。動きますが読みにくいので、素直に SUMIFS を使うほうがいいです。
=SUMIFS(C:C, A:A, ">="&DATE(2026,4,1), A:A, "<"&DATE(2026,5,1))
条件が2つ以上あるとき
SUMIFは条件を1つしか取れません。「東京」かつ「商品A」のような集計には SUMIFS を使います。
=SUMIFS(C2:C5, A2:A5, "東京", B2:B5, "A")
条件が1つでもSUMIFSで書いてしまうという方針もあります。後から条件を足すときに書き直さずに済むためです。
よくある失敗
合計が合わない・0になる
1. 引数の順番が逆
=SUMIF(合計範囲, 条件, 条件範囲) と書いてしまうケース。SUMIFは条件の範囲が先です。
2. 範囲の行数がずれている
条件の範囲が A2:A100、合計する範囲が C2:C50 のように長さが違うと、正しく対応しません。両方の開始行と行数を揃えてください。 列全体(A:A と C:C)で指定するのが最も安全です。
3. 余分なスペース
"東京 " と "東京" は別物です。見た目では分かりません。疑わしいときは元データを TRIM で整えます。
4. 数値が文字列になっている
他システムから貼り付けたデータでよく起きます。セルが左寄せになっていたら文字列です。合計対象が文字列だと0になります。
5. 比較演算子とセル参照を & でつないでいない
">"&E1 が正解です。">E1" は文字列の「E1」を探します。
#VALUE! が出る
範囲の指定が不正です。別ファイルへの参照が閉じている場合にも出ます。
Excelとの違い
書式・挙動ともにExcelと同じです
ワイルドカード、比較演算子、& での連結もすべて共通です。
違いは次の点だけです。
- Excelには
SUMIFの代わりに使えるSUMPRODUCTの高速版がありますが、実務では差を感じません - Googleスプレッドシートでは、QUERY や FILTER という強力な代替手段が使えます
条件が複雑になってきたら、スプレッドシートでは QUERY を検討する価値があります。SQLに近い書き方で、集計とグループ化を一度に書けます。
条件の書き方で結果が変わる場面
SUMIFは書き方が単純な割に、条件の指定で結果が変わりやすい関数です。実務でつまずくのは、だいたい次の場面に集約されます。
まず、比較演算子を使うときはダブルクォートで囲む必要があります。「100以上」という条件を書く場合、不等号と数値をひとつの文字列として渡します。この形を知らないと、数値をそのまま書いて「ちょうど100だけ」が集計されてしまいます。見た目には動いているので、間違いに気づきにくいところです。
次に、条件を別のセルから取ってくる場合です。入力欄に基準値を置いて、それ以上のものを合計したい、という作り方はよくあります。このとき、不等号とセル参照をアンパサンドで連結する必要があります。連結せずに並べて書くと、セル番地そのものが文字列として扱われ、該当なしになります。条件を可変にした瞬間に動かなくなるのは、ほぼこれが原因です。
三つ目は、条件範囲と合計範囲の行数を揃えることです。片方だけ範囲を広げてしまうと、対応する行がずれて、まったく違う値が集計されます。エラーにならず数字が返ってくるため、気づくのが遅れます。数式を書いたら、両方の範囲が同じ行から同じ行までになっているかを必ず確認してください。
四つ目は、合計範囲を省略した場合の挙動です。省略すると、条件範囲そのものが合計されます。数値の列に対して「100以上のものを合計」といった使い方ができますが、条件範囲が文字列の列だと0が返ります。省略できることを知らずに書いている人が多く、逆に省略したつもりが範囲を渡していて意図が変わる、ということも起こります。
日付を条件にするときの考え方
日付は内部的には連続した数値として扱われています。この前提を知っていると、日付の条件が一気に扱いやすくなります。
「特定の日」を条件にする場合、日付をそのまま文字列として書くと、環境や地域設定によって解釈が変わります。確実なのは、基準となる日付を別のセルに入れて参照することです。表示形式に関係なく、内部の数値で比較されます。
「今月分だけ」のように期間で絞りたい場合、SUMIFでは条件をひとつしか指定できないため、開始日以降の合計から終了日より後の合計を引くという書き方をします。2本の数式を足し引きする形です。ただし、この書き方は読みにくくなるので、条件を2つ指定できるSUMIFSを使うほうが実務的です。→ SUMIFS関数の使い方
「今日より前」のように動く基準で絞りたい場合は、TODAY関数を条件に組み込みます。開くたびに基準日が変わるので、日次で更新する集計表に向いています。ただし、TODAY関数は開くたびに再計算されるため、過去の集計結果を固定したい表では使わないでください。→ TODAY関数の使い方
日付が時刻を含んでいる場合も注意が必要です。「2026年4月1日」と入力したセルと、「2026年4月1日 9時30分」と入力したセルは、内部的には別の値です。日付だけで比較したい場合は、時刻を切り落とした作業列を用意するのが確実です。
部分一致で集計する
条件にはワイルドカードが使えます。アスタリスクは任意の長さの文字列、クエスチョンマークは任意の1文字を表します。
商品名に特定の語を含むものだけを合計したい、支店名が特定の地域で始まるものだけを集計したい、といった場面で使えます。前方一致、後方一致、部分一致のいずれも書けます。
注意点は、ワイルドカードが効くのは文字列に対してだけという点です。数値の列に対して部分一致で集計することはできません。コード体系が数値で管理されている場合は、文字列に変換した作業列を用意するか、別の方法を検討してください。
また、商品名にアスタリスクやクエスチョンマークが実際に含まれる場合、それらは記号として解釈されてしまいます。文字として扱いたい場合は、前にチルダを付けてエスケープします。記号を含む型番を扱う業種では、これを知らないと集計が合いません。
集計表を組み立てるときの型
SUMIFを実務で使う場面のほとんどは、集計表の作成です。行に項目、列に期間を並べた表を作ると、月次の推移が一目で分かるようになります。
このとき重要なのが、参照の固定の仕方です。条件範囲と合計範囲は表全体で共通なので完全に固定し、条件のセルだけが行や列に応じて動くようにします。行見出しを参照するなら列だけを固定し、列見出しを参照するなら行だけを固定します。この使い分けができると、ひとつの数式を書いて表全体にコピーするだけで集計が完成します。
逆に、ここを間違えると、右や下にコピーした瞬間に範囲がずれて全部おかしくなります。数式を書いたら、まず右に1つ、下に1つコピーして結果を確かめる習慣をつけると、大きな手戻りを防げます。
集計表が大きくなってきたら、SUMIFを並べるよりピボットテーブルを検討する段階です。条件が増えたときの保守が楽になります。ただし、数式で組んだ表のほうが、他のセルから参照しやすいという利点もあります。
そのまま使える型を5つ
別シートの表を合計する
=SUMIF('明細'!$B$2:$B$5000,$A2,'明細'!$D$2:$D$5000)
条件範囲と合計範囲は、必ず同じ行数にしてください。ずれていると、意図しない行が足されます。エラーにならないため、気づくのが遅れます。
部分一致で合計する
=SUMIF($B$2:$B$500,"*東京*",$D$2:$D$500)
* は任意の文字列です。前方一致なら "東京*"、後方一致なら "*東京" と書きます。1文字だけの任意は ? です。
以上・以下で合計する
=SUMIF($C$2:$C$500,">=1000",$D$2:$D$500)
比較演算子は引用符の中に書きます。セルを参照するなら ">="&$F$1 のように連結してください。この形を知らないと、条件を可変にできません。
空欄でない行だけ合計する
=SUMIF($B$2:$B$500,"<>",$D$2:$D$500)
未入力の行を除いた集計に使います。逆に空欄だけを対象にするなら "" を指定します。
日付の範囲で合計する
=SUMIFS($D$2:$D$500,$A$2:$A$500,">="&$F$1,$A$2:$A$500,"<="&$F$2)
範囲で絞るには条件が2つ必要なので、SUMIFS を使います。開始日と終了日をセルに置くと、後から変えられる集計表になります。
引数の順番に注意する
| 関数 | 1つ目 | 2つ目 | 3つ目 |
|---|---|---|---|
| SUMIF | 条件範囲 | 条件 | 合計範囲 |
| SUMIFS | 合計範囲 | 条件範囲 | 条件 |
順番が逆になっている
SUMIF は条件が先、SUMIFS は合計が先です。この違いが、最も多い間違いの原因です。迷ったら、条件が1つでも SUMIFS に統一してください。順番を覚え直さずに済みます。
合計範囲を省略できる
条件範囲と合計範囲が同じなら、3つ目を省略できます。ただし、後から読む人が迷うため、書いておくほうが親切です。
範囲の行数を揃える
$B$2:$B$500 と $D$2:$D$1000 のようにずれていると、集計結果が狂います。範囲を広げるときは、必ず両方を同時に直してください。
合計が合わないときの切り分け
件数を先に数える
=COUNTIF($B$2:$B$500,$A2)
合計がおかしいときは、まず何件拾えているかを確認してください。0件なら条件の問題、件数が多すぎるなら範囲の問題です。
条件の型を確認する
数値として保存されているつもりの列が、文字列になっていることがあります。=ISNUMBER(B2) で確認できます。文字列なら合計に含まれません。
前後の空白を疑う
"東京" と "東京 " は別の値です。TRIM で掃除した作業列を作り、そこを条件範囲にすると解決します。
結合セルを疑う
見出しが結合されている表では、範囲の一部が空欄になります。集計用の表では、結合を使わないでください。
小計行が混ざっていないか
元データに小計行が含まれていると、二重に数えます。SUBTOTAL を使うか、小計行を別シートに分けてください。
条件を可変にする
集計表は、条件を数式に直書きすると使い回せません。セル参照にしてください。
セルの値を条件にする
=SUMIF($B$2:$B$500,$F$1,$D$2:$D$500)
F1 に部署名を入れるだけで、集計対象が切り替わります。
比較演算子とセルを連結する
=SUMIF($C$2:$C$500,">="&$F$1,$D$2:$D$500)
& で演算子と値をつなぎます。引用符の位置を間違えやすいので、動かないときはここを見てください。
プルダウンと組み合わせる
条件のセルにデータの入力規則を設定すると、選ぶだけで切り替わる集計表になります。入力ミスによる 0 件も防げます。
複数条件をまとめて出す
条件を縦に並べ、右隣に SUMIF を置くと、一覧で比較できる集計表になります。数式は1行書いて下にコピーするだけです。
速度が落ちたときに効く順番
列全体の指定をやめる
B:B ではなく $B$2:$B$5000 と書きます。空行を含む列全体の指定は、行数が多いほど重くなります。
条件を作業列にまとめる
複数条件を毎回評価させるより、作業列に判定結果を出しておき、その列を条件にするほうが軽くなります。
ピボットテーブルに切り替える
集計軸が固定なら、数式より集計機能のほうが速く、保守も楽です。数式にこだわる理由がないか、一度確認してください。
確定した期間は値にする
締めた月の集計は、値貼り付けにしてください。再計算の対象から外れます。
「集計」の関数を全体から見る
集計は数値をまとめる関数群です。同じカテゴリの関数は、つまずく場所も似ています。この記事のほかに48本あります。
このカテゴリで共通するつまずき
空欄と0の扱いが結果を左右します。未入力を0で埋めると平均が下がります。1つで理解した内容は、同じカテゴリの他の関数にもそのまま使えます。
どれを使うかの決め方
条件の数で使う関数が変わります。将来増えるなら複数条件に対応する形にしてください。関数の一覧を眺めて選ぼうとすると、どれも当てはまるように見えて決まりません。
迷ったときは
→ 全関数の一覧 に目的別の索引があります。
数式を書く前の手順
書き始める前に決めておくことがあります。ここが曖昧なまま書くと、途中で行き詰まります。
1. 出したい結果を一文で書く
「何を、どの条件で、どんな形で出したいか」。この一文が書ければ、関数はほぼ決まります。書けないなら、まだ要件が固まっていません。
2. 元データの型を確認する
空欄と0の扱いが結果を左右します。未入力を0で埋めると平均が下がります。=ISNUMBER(A2) で数値かどうかを確認できます。見た目が同じでも、数値と文字列は別物です。
3. 空欄と0の扱いを決める
未入力なのか、実績が0なのか。表の意味が変わります。どちらとして扱うかを決めてから書いてください。
4. 条件の数を数える
条件の数で使う関数が変わります。将来増えるなら複数条件に対応する形にしてください。将来条件が増える可能性があるなら、最初から複数条件に対応する形にしてください。
5. 共有先の環境を確認する
新しい関数は、古い環境で開くとエラーになります。社外に渡すファイルでは、この一点で選択肢が変わります。
6. 1行だけ書いて確認する
全行にコピーする前に、1行分の結果が正しいかを見てください。間違ったまま広げると、直す手間が増えます。
どの関数でも共通する確認
関数を問わず、結果がずれる原因は限られています。この5つを確認すれば、大半が解決します。
参照を固定したか
下方向にコピーする数式では、動いてはいけない参照を固定します。上の数行だけ見て判断しないでください。ずれは下のほうで表面化します。
範囲の行数が揃っているか
複数の範囲を渡す関数では、行数がずれると結果が狂います。エラーにならず値が返るため、気づきにくい種類の間違いです。
型が揃っているか
=ISNUMBER(A2)
数値として入っているかを判定します。システムから書き出したデータでは、これが原因のことが多くあります。
前後に空白が入っていないか
=LEN(A2)&" / "&LEN(TRIM(A2))
数が違えば、余分な空白が入っています。見た目では判別できません。
別の方法で検算したか
同じ数字を別の関数でも出して、突き合わせてください。1つの結果だけを見ても、正しいかどうかは判断できません。
最終行まで確認したか
一番下までスクロールして、結果を見てください。途中から値が変わっていないかを確認します。
引き継ぐときに残すこと
数式は動いていても、意図は残りません。渡す前に、次の点をシート内にメモしてください。3分で終わります。
何を出している数式か
一行で構いません。読めば分かると思っても、数か月後の自分には分かりません。
どの表を参照しているか
参照先のシート名と、更新の担当。別ファイルなら、その場所も書いてください。
該当しないときの扱い
空欄にしているのか、文言を出しているのか、エラーのまま残しているのか。書いていないと、受け取った側は空欄をデータなしと読みます。
触ってはいけない場所
列を挿入すると壊れる数式がある場合、必ず書き残してください。この一行があるだけで、引き継ぎ後の事故が大きく減ります。
使った関数の対応環境
新しい関数を使っている場合、古い環境では開けません。共有の範囲が広がる可能性があるなら、明記してください。
確定した期間は値にする
締めた月の集計は、値貼り付けにしてください。参照元を消しても壊れなくなり、ファイルも軽くなります。
このサイトの収録状況
現在、201本の記事をカテゴリ別に整理しています。関数名が分からない場合は、カテゴリから探してください。
| カテゴリ | 記事数 |
|---|---|
| 目的別 | 51本 |
| 集計 | 47本 ←この記事 |
| 文字列 | 31本 |
| 日付 | 19本 |
| 検索・参照 | 15本 |
| 条件 | 15本 |
| 機能 | 12本 |
| 配列・抽出 | 10本 |
| 関数一覧 | 1本 |
探し方の順番
関数名が分かっているなら検索窓から。やりたいことだけ決まっているなら「目的別」から。近い関数を比べたいなら、同じカテゴリの一覧から入ってください。
記事の構成
どの記事も、書式・実例・つまずきやすいところ・似た関数との使い分けを同じ順番で並べています。1本読めば、他の記事も同じ場所を探せます。
よくある質問
Q. 0が返ってきます
条件に一致するものがないか、合計範囲が文字列になっています。まず条件を外して単純な合計を出し、数値として扱われているかを確かめてください。
Q. 「〜以外」を集計したいのですが
不等号を2つ並べた記号を使います。特定の値以外、という条件が書けます。空白以外を集計したい場合にもよく使われます。
Q. 複数の条件で合計したいのですが
条件が2つ以上ならSUMIFSを使います。条件と範囲をペアで並べていく形です。
Q. 「または」の条件はどう書きますか
SUMIF単体ではできません。それぞれの条件で合計して足すのが分かりやすい方法です。両方に該当するものが二重に計上される点にだけ注意してください。
Q. 別シートの範囲を集計できますか
できます。範囲の指定にシート名を付けるだけです。
Q. 条件に一致した件数を知りたいのですが
COUNTIFを使ってください。合計ではなく件数を返します。→ COUNTIF関数の使い方
Q. 平均を出したいのですが
AVERAGEIFという関数があります。書き方はSUMIFとほぼ同じです。→ AVERAGEIF関数の使い方
Q. エラーが混ざっていると合計できません
範囲にエラーがあると集計もエラーになります。元の数式をIFERRORで包んで、エラーが出ないようにしておくのが確実です。
この分野の他の記事
同じ「集計」の記事です。目的が近いので、こちらで解決しない場合はこちらも見てください。
まとめ
- 書式は
=SUMIF(条件の範囲, 条件, 合計する範囲) - 条件の範囲が先。SUMIFS とは順番が逆
- 比較演算子は
">1000"のように"で囲む - セル参照と組み合わせるときは
">"&E1 - 条件が2つ以上なら SUMIFS
- 合わないときは範囲のずれ・スペース・文字列化を疑う