SUMIF関数は、条件に合う行だけを選んで合計する関数です。引数は「範囲・検索条件・合計範囲」の順。条件を判定する列と実際に足す列が別物である点が、最大のつまずきどころです。
この記事でわかること
- SUMIF関数の3つの引数がどの列を指すか
- 「以上」「〜を含む」「空白以外」といった条件の書き方
- 日付や期間で絞り込んで合計する方法
- 結果が0になる・
#VALUE!が出るときの原因と直し方 - SUMIFS関数との引数の順番の違い(ここが逆になっている)
SUMIF関数の構文と引数
構文
=SUMIF(範囲, 検索条件, [合計範囲])
| 引数 | 指定するもの | 注意点 |
|---|---|---|
| 範囲 | 条件を判定するセル範囲 | 足す列ではなく、条件を照らし合わせる列 |
| 検索条件 | 条件(値・比較式・文字列) | 比較式やワイルドカードは"で囲む |
| 合計範囲 | 実際に足すセル範囲 | 省略すると「範囲」そのものを合計する |
引数の1つ目と3つ目が別の列を指すのがSUMIFの特徴です。「条件を見る列」と「金額の列」を取り違えると、結果は0になります。

基本の使い方
A列に支店、B列に商品、C列に金額が並ぶ売上表を例にします。大阪支店の金額だけを合計するなら、次の式です。
=SUMIF($A$2:$A$100, "大阪", $C$2:$C$100)
条件を直接書かず、集計表のセルを参照させると使い回せます。E列に支店名を並べ、F列に次の式を置く形です。
=SUMIF($A$2:$A$100, $E2, $C$2:$C$100)
範囲は絶対参照で固定する
$A$2:$A$100 のようにドル記号で固定します。固定せずに下へコピーすると、範囲が1行ずつ下へずれて集計もれが出ます。範囲を入力した直後にF4キーを押すと切り替わります。
なお、範囲と合計範囲は同じ行数に揃えてください。片方だけ100行、もう片方が99行という状態は、集計もれの温床です。
実務でよく使う4パターン
① 数値の大小で絞る
比較演算子はダブルクォーテーションの内側に入れます。1万円以上の行だけを合計する式です。
=SUMIF($C$2:$C$100, ">=10000")
この例では合計範囲を省略しています。条件を見る列と足す列が同じ場合は、3つ目の引数が要りません。
しきい値をセルで持たせるときは、演算子と参照を&でつなぎます。
=SUMIF($C$2:$C$100, ">="&$E$1)
">=E1" と書くと、E1という文字そのものを探しに行きます。ここを&でつながないのは、よくある書き間違いです。
② 「〜を含む」で絞る
部分一致にはワイルドカードを使います。
| 書き方 | 意味 |
|---|---|
"*ペン*" | 「ペン」を含む |
"東京*" | 「東京」で始まる |
"*支店" | 「支店」で終わる |
"??支店" | 任意の2文字+「支店」 |
"~*" | アスタリスクそのもの |
セル参照と組み合わせるなら "*"&$E2&"*" の形にします。* や ? を文字として探したいときだけ、直前に半角チルダ ~ を置きます。
③ 日付・期間で絞る
日付も比較演算子で絞れます。4月1日以降を合計する式です。
=SUMIF($A$2:$A$100, ">="&DATE(2026,4,1), $C$2:$C$100)
「4月1日から4月30日まで」のように期間で挟むなら、条件が2つになります。SUMIFでは引き算で表現できますが、素直に書けるのはSUMIFS関数のほうです。
=SUMIFS($C$2:$C$100, $A$2:$A$100, ">="&DATE(2026,4,1), $A$2:$A$100, "<="&DATE(2026,4,30))
④ 空白・空白以外で絞る
- 空白以外の行だけ合計:
=SUMIF($B$2:$B$100, "<>", $C$2:$C$100) - 空白の行だけ合計:
=SUMIF($B$2:$B$100, "=", $C$2:$C$100)
未入力の行を除いて集計したいときに使います。

うまくいかないときの原因と直し方
症状から引けるように並べました。
| 症状 | 主な原因 | 直し方 |
|---|---|---|
| 結果が0になる | 金額が文字列として入っている | 左寄せなら文字列。「区切り位置」で数値に変換する |
| 結果が0になる | 条件列に余分な空白がある | =TRIM(A2) で確認し、置換で除去する |
| 一部だけ合計されない | 範囲と合計範囲の行数がずれている | どちらも同じ行数に揃える |
| コピーすると値が変わる | 範囲が相対参照のまま | $A$2:$A$100 の形に固定する |
#VALUE! | 参照先の別ブックが閉じている | 表を同じブックへ移す |
#VALUE! | 検索条件が255文字を超えている | 条件を短くする |
#DIV/0! などが返る | 合計範囲にエラー値が混ざっている | 元のエラーを先に解消する |
| 意図しない行が入る | 条件に * や ? が含まれていた | ~* ~? でエスケープする |
| 非表示の行まで合計される | SUMIFは表示状態を見ない | SUBTOTAL関数かAGGREGATE関数を使う |
結果が0になる原因は、ほぼ2つ
「数式は合っているのに0」という相談のほとんどは、型の不一致か表記ゆれです。
型は見た目で判定できます。数値は既定で右寄せ、文字列は左寄せ。金額の列が左に寄っていたら、それは数値ではありません。=SUM(C2:C100) を別のセルに入れて0が返るなら、確定です。
表記ゆれは条件側で起きます。SUMIFは大文字と小文字を区別しませんが、全角と半角、「東京」と「東京都」は別物として扱います。前方一致にしたいなら "東京*" と書きます。

似た関数との使い分け
| 関数 | 対応バージョン | 選ぶ場面 |
|---|---|---|
| SUMIF | 2016〜 | 条件が1つ |
| SUMIFS | 2016〜 | 条件が2つ以上。条件1つでも書ける |
| SUMPRODUCT | 2016〜 | 単価×数量のように掛けてから合計する |
| SUBTOTAL | 2016〜 | フィルタで絞った結果だけを集計する |
| COUNTIF | 2016〜 | 足すのではなく件数を数える |
| ピボットテーブル | 2016〜 | 条件の組み合わせを一覧で確かめたい |
⛔ SUMIFSは引数の順番が逆
同じ「条件つき合計」でも、2つの関数は引数の並びが違います。
=SUMIF(範囲, 検索条件, 合計範囲)
=SUMIFS(合計範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, ...)
SUMIFSは合計範囲が先頭です。SUMIFの感覚のまま書くと、条件列を合計してしまいます。
条件が1つでもSUMIFSは使えるので、チーム内で書式を統一したいならSUMIFSに寄せるという選び方もあります。条件を後から足すときも、式の途中に追記するだけで済みます。
よくある質問
Q1:SUMIFで条件を2つ指定できますか?
できません。条件が2つ以上ならSUMIFS関数です。ただし「大阪または京都」のようなOR条件なら、SUMIFを配列定数と組み合わせて次のように書けます。
=SUM(SUMIF($A$2:$A$100, {"大阪","京都"}, $C$2:$C$100))
Q2:合計範囲を省略するとどうなりますか?
1つ目の「範囲」がそのまま合計されます。金額の列そのものに「1万円以上」といった条件をかけるときは、省略した書き方のほうが短くて読みやすくなります。
Q3:大文字・小文字や全角・半角は区別されますか?
大文字と小文字は区別されません。ABC と abc は同じ扱いです。一方で全角と半角は別の文字として扱われるため、一致しません。ASC関数やJIS関数で、あらかじめどちらかに寄せておくと安全です。
Q4:別のシートやブックにある表も集計できますか?
別シートは =SUMIF(売上!$A$2:$A$100, $E2, 売上!$C$2:$C$100) の形で問題なく集計できます。別ブックも指定はできますが、参照先のブックを閉じると #VALUE! になります。継続して使う集計表なら、同じブック内に取り込んでおくのが確実です。
Q5:合計範囲に文字列が混ざっていても平気ですか?
平気です。数値のセルだけが足され、文字列は無視されます。ただし #N/A や #DIV/0! などのエラー値が1つでも混ざると、SUMIFの結果もエラーになります。元の数式をIFERROR関数で包むなどして、先にエラーを解消してください。
まとめ
- 引数は範囲・検索条件・合計範囲の順。1つ目は「判定する列」、3つ目は「足す列」
- 比較演算子は
"の中。セル参照と組むときは">="&$E$1の形にする - 部分一致は
*と?。記号そのものを探すなら~を前に置く - 結果が0のときは①金額が文字列 ②表記ゆれの順に疑う
- 条件が2つ以上ならSUMIFS。引数の順番が逆である点に注意する
※関数の対応バージョンはExcelの一般提供時点の情報にもとづいています。お使いの環境や更新プログラムの適用状況により、利用できる関数や表示が異なる場合があります。
あわせて読みたい

