SUMIF / SUMIFS が動かない6つの原因と解決法【上から順に試せばOK】
「SUMIFを書いたのに結果が 0 になる…」
「SUMIFSで #VALUE! が出る…」
「明らかに合計できそうなのに、なぜか合わない…」
💡 関連記事:
- VLOOKUPで#N/Aが出る5つの原因と解決法 ← 検索系で困っている人向け
- Excelの主要エラー6種【症状→原因→解決の早見表】
- IFERROR の使い方と落とし穴 ← エラーを隠す前に読む
症状
SUMIFの結果が0になる、合計が明らかに合わない、#VALUE!や#NAME?が出る——そんな状態になっている。
即答
SUMIFの結果がゼロや期待と違うときは「合計範囲の型・余白・範囲サイズ・クォート・ワイルドカード・日付」の6パターンを上から順に確認する。
なぜ起きるのか
SUMIFは条件に一致した行の合計範囲を足し上げる。合計範囲が数値でなければ足すものが無く0になり、条件側は余白や見えない文字が混じるだけで一致しなくなる。
確認手順
エラーの症状から最初に確認すべき節へ進んでください。「あなたのケースはどれ?」で原因を絞れます。
- 結果が0 → 「① 合計範囲の型」か「② 余白・改行」を確認
- #VALUE!が出る → 「③ SUMIFSの範囲サイズ」を確認
- #NAME?が出る → 「④ 関数名のつづり・条件の書き方」を確認
- 期待値と違う(0ではない) → 「⑤ ワイルドカード」か「⑥ 日付の扱い」を確認

まずはSUMIFとSUMIFSの基本(30秒で確認)
SUMIFは「条件範囲→条件→合計範囲」、SUMIFSは「合計範囲→条件範囲1→条件1→...」と引数の順番が逆になる。
=SUMIF(条件範囲, 条件, 合計範囲)
=SUMIFS(合計範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, ...)
SUMIF と SUMIFS の引数の順番が違う ので注意:
SUMIFは 条件範囲 → 条件 → 合計範囲SUMIFSは 合計範囲 → 条件範囲1 → 条件1 → ...
SUMIFS は条件を 複数指定 できる代わりに、合計範囲が最初に来ます。
📌 ポイント: 条件1つなら SUMIF、複数なら SUMIFS。迷ったら最初から SUMIFS で書いておくと統一感が出て管理しやすいです。「合計」ではなく「件数」を数えたいときは COUNTIF / COUNTIFS を使います(つまずくパターンはほぼ同じです)。条件ごとの集計を手軽に一覧化したい場合は、数式ではなく ピボットテーブルで集計する方法 も選択肢になります。
まず疑うべき3つの原因(上から順に確認)
「合計範囲の型・余白・範囲サイズ不一致」の3パターンを、まずこの順で確認する。
SUMIF / SUMIFS が思い通りに動かないとき、最初に当たるのがこの3つです。
上から順番に確認 してください。
① 合計範囲が「文字列の数字」になっている
SUMIFの結果が0になる型の問題は、条件側ではなく合計範囲側が文字列になっているときに起きる。
症状
- 条件は正しく当たっているはずなのに、合計だけが
0になる - 元データをCSVや別システムから貼り付けたときに発生しがち
確認方法
合計範囲だけを選んで、次の式を書いてみてください。
=SUM(合計範囲)
SUM は文字列の数字を足さないので、合計範囲が文字列なら 0 になります。ただし 0 だからといって文字列とは限りません(値が本当に 0 のこともあります)。決め手は =ISNUMBER(B2) で、FALSE なら数値ではありません。一部のセルだけ文字列になっていることもあるので、何か所か見てください。
解決方法
作業列で数値に直してから合計します。
=VALUE(B2)
この作業列を SUMIF の合計範囲に指定します。 まとめて数値に直す手順は 数式が計算されない・=SUMがそのまま表示される にまとめています。
📌 ポイント: よく言われる「条件の型が違うと0になる」は SUMIF では起きません。SUMIF は数字として読める文字列を数値として扱うので、文字列の
"1001"は数値の条件1001に一致します("01001""1,001""1001"も一致します)。一致しなくなるのは、"1001A"や改行なしスペースCHAR(160)の混入で 数字として読めなくなったとき です(Microsoft Q&A)。なお
VLOOKUPは型を厳密に区別します(文字列の1001と数値の1001は#N/A)。同じデータでも関数で結果が変わるので、VLOOKUPで困っている場合は VLOOKUPで#N/Aが出る5つの原因 を見てください。

② 見えない余白・改行が混じっている
末尾スペースや改行が混入すると完全一致に失敗し、合計が0またはおかしな値になる。
「目視では同じなのに集計されない」場合、スペースや改行が混入している 可能性が高いです。
症状
- 条件が
"商品A"なのに、表側が"商品A "(末尾に半角スペース) - 別システムからのコピペデータでよく発生
- SUMIFの結果が「一部だけ集計される」など中途半端な値になる
確認方法
セルをダブルクリックして、カーソルキーで末尾まで移動してみる。 余分な余白があると気づけます。
解決方法
TRIM関数(前後のスペースを除去し、語間の連続スペースを1つに詰める)で範囲側をクリーンアップした作業列を作るのが鉄板です。
=TRIM(A2)
この作業列を作ってから SUMIF の条件範囲に指定します。
条件範囲・合計範囲(第1・第3引数)に TRIM を入れることはできません(範囲の引数はセル参照である必要があり、数式として受け付けられません)。条件=第2引数に TRIM(D2) と書くのは可能です。
📌 ポイント:
TRIMは前後のスペースを 半角・全角どちらも 除去します(先頭の全角スペースも消えます)。ただし落とし穴が2つあります。
- 語間のスペースは1つだけ残る —
"商品 A"は"商品 A"になります。語間まで消したいときはSUBSTITUTEで置き換えてください。- 改行なしスペース(
CHAR(160))はTRIMでは消えない — Webページからコピーしたデータで混入しがちです(Microsoft: TRIM 関数)。どちらのケースも
SUBSTITUTEで先に潰してからTRIMします。=TRIM(SUBSTITUTE(SUBSTITUTE(A2," ",""),CHAR(160)," "))
③ SUMIFSの範囲サイズが揃っていない
合計範囲と条件範囲のサイズが揃っていないと#VALUE!になる。全範囲を同じ行数に揃える。
SUMIFS には 致命的な仕様 があります。
合計範囲と、すべての条件範囲は 同じサイズ(同じ行数・列数) でなければならない
症状
#VALUE!エラーが出る
⚠️ 条件が1つだけの無印
SUMIFは挙動が違います。合計範囲を条件範囲より短く書いても#VALUE!で止まらず、左上を起点に範囲が自動で補われてズレた集計になることがあります。無印SUMIFでも合計範囲のサイズはきっちり合わせましょう。
ダメな例
=SUMIFS(C2:C100, A2:A100, "商品A", B2:B50, "東京")
↑ ここだけ B2:B50 で範囲が短い
正しい例
=SUMIFS(C2:C100, A2:A100, "商品A", B2:B100, "東京")
解決方法
すべての範囲を 同じ開始行・終了行 に揃えてください。 列全体を指定する方法も使えます:
=SUMIFS(C:C, A:A, "商品A", B:B, "東京")
📌 ポイント: 列全体(
C:Cなど)を使うと範囲ズレの心配が消えますが、データ量が多いと処理が重くなることがあります。実務では$C$2:$C$1000のように 絶対参照+十分な行数 を確保する書き方も定番。

【実務でこれが起きた場面】
経理部門の月次売上集計で、会計システムからExcelにエクスポートした売上データをSUMIFSで月ごとに集計していたが、特定の月だけ合計が0になった。日付列のセルを見ると書式は「日付」表示になっているのに、=ISNUMBER(セル) が FALSE を返した。つまり日付が文字列として保存されていた。調査したところ、会計システムの出力形式がバージョンアップで変わっており、1月分は「2026/01/15」でExcelが日付として認識できていたが、2月以降はこの会計システムの出力でなぜか文字列として貼り付いていた(「2026-01-15」のようなハイフン区切り自体はExcelでも日付認識され得るので、原因は区切り文字ではなくこのシステムの出力仕様だった)。">="&DATE(2026,2,1) との比較では文字列の日付はヒットしない。DATEVALUE関数で数値の日付に変換した作業列を経由させることで解決したが、「書式は日付に見えるのに実は文字列」という状態は、見た目では気づけず ISNUMBER で一発で判別できる点が実務での診断ポイントになっている。
それでも直らないときの中級チェック
御三家で絞れない場合は、クォート・ワイルドカード・日付の書き方の3つを順に確認する。
御三家で原因が特定できないときは、以下を疑います。
④ 比較演算子のクォート忘れ
「>=100」のような条件式はクォートで囲まないと、そもそも数式として受け付けられない。#NAME? は別の原因で出る。
「100以上」や「東京以外」のような 条件式 は 文字列として クォートで囲む必要があります。
ダメな例
=SUMIF(A2:A100, >=100, B2:B100) ← >=100 がクォートされていない
正しい例
=SUMIF(A2:A100, ">=100", B2:B100)
=SUMIF(A2:A100, "<>東京", B2:B100)
セル参照を組み合わせるとき は、演算子だけクォートして & で連結します。
=SUMIF(A2:A100, ">="&D1, B2:B100)
これは「D1 の値以上のものを合計」という意味。
📌 ポイント: 「
>=を含む条件」「<>を含む条件」は 必ずクォートが必要 です。クォートを忘れると、その式は数式として受け付けられず、計算結果が返りません(#NAME?のようなエラー値も返りません)。
#NAME? が出たときに疑うこと
#NAME?は Excel が解決できない名前がある ときのエラーです。典型は=SUMIFF(...)のような 関数名のつづり間違い。- 比較演算子のクォート忘れでは
#NAME?は出ません。 - クォートを付け忘れた語を SUMIF の条件(第2引数) に書いた場合(
=SUMIF(A2:A5,abc,B2:B5))は、#NAME?ではなく0が返ります。同じ書き間違いでも=IF(A2=東京,…)では、Excel が東京という名前を解決できず#NAME?になります。 #NAME?全般は Excelの主要エラー6種 にまとめています。

⑤ ワイルドカード(* ?)と完全一致の混同
SUMIFはデフォルトで完全一致だが、「*」「?」を使えば部分一致で合計できる。
SUMIF / SUMIFS は デフォルトで完全一致 ですが、ワイルドカードも使えます。
ワイルドカードの意味
| 記号 | 意味 |
|---|---|
* | 任意の文字(0文字以上) |
? | 任意の1文字 |
~* / ~? | * / ? 自体を検索したいとき(エスケープ) |
部分一致したいとき
=SUMIF(A2:A100, "商品*", B2:B100) ← "商品" で始まる
=SUMIF(A2:A100, "*東京*", B2:B100) ← "東京" を含む
=SUMIF(A2:A100, "*店", B2:B100) ← "店" で終わる
よくあるハマりどころ
- データに
*という記号が含まれている場合、ワイルドカードと解釈されてしまう - →
"~*"のように~(チルダ)でエスケープすると、*を文字として扱える
📌 ポイント: 部分一致で集計したいのに完全一致で書いている、または逆に完全一致のつもりが
*を含む文字列が予想外にヒット…のパターンが多いです。

⑥ 日付の扱い(DATE関数 / ">="& の連結)
日付条件はDATE関数を使った ">="&DATE(...) 形式で書くのが確実で、文字列リテラルは非推奨だ。
日付条件は 意外とハマりやすい ポイントです。
ダメな例(動くけど壊れやすい)
=SUMIFS(C:C, A:A, ">=2026/1/1")
書き方次第で動きますが、日付の解釈のしかたに寄りかかった書き方です。DATE() を使えば解釈に頼らずに済みます。
正しい例(推奨)
=SUMIFS(C:C, A:A, ">="&DATE(2026,1,1), A:A, "<"&DATE(2026,2,1))
これは「2026年1月の合計」を確実に取る書き方。
よくあるパターン
- 「今月の合計」:
">="&DATE(YEAR(TODAY()),MONTH(TODAY()),1)と"<"&DATE(YEAR(TODAY()),MONTH(TODAY())+1,1)を組み合わせる - 「セルD1の日付以降」:
">="&D1
📌 ポイント: 日付は 数値(シリアル値) として扱われます。
DATE()関数や&連結を使えば、文字列リテラルとして書くより安全です。
なお、DATE() で正しく書いても期間集計が合わないときは、集計対象の日付そのものが「文字列の日付」(=ISNUMBER(セル) が FALSE になる)になっている可能性があります。その場合は 日付が数字になる・直らないときの直し方 で本物の日付に直してから集計してください。

番外:SUMIFSとSUMPRODUCTの使い分け
SUMIFSで表現できない複雑な条件のときだけSUMPRODUCTを使う。シンプルな条件ならSUMIFSが速くて読みやすい。
SUMIFS でどうしても表現できない条件のときは、SUMPRODUCT の出番です。
SUMIFS が苦手なこと
- 関数を絡めた複雑な条件(例: 「文字列の長さが3のもの」)
- 「OR条件」を1つの式でまとめる
SUMPRODUCT なら書ける例
=SUMPRODUCT((LEN(A2:A100)=3)*B2:B100)
「A列の文字列長が3のとき、B列を合計」という条件。
📌 ポイント: シンプルな条件なら SUMIFS が速くて読みやすい。複雑な条件のときだけ SUMPRODUCT に切り替えると、可読性とパフォーマンスのバランスが取れます。
まとめ:判断フロー
エラーの種類(0/#VALUE!/#NAME?/期待値違い)で確認すべき原因が決まる。
| 順番 | 疑うこと | 解決の道具 |
|---|---|---|
| ① | 合計範囲が文字列 | =SUM(合計範囲) が0か確認 → VALUE の作業列 |
| ② | 見えない余白・改行 | TRIM の作業列 |
| ③ | SUMIFS の範囲サイズ | 全範囲を同じ行数に揃える |
| ④ | 比較演算子のクォート漏れ | ">=100" のように文字列化 |
| ⑤ | ワイルドカード | * ? ~* の意味を確認 |
| ⑥ | 日付の扱い | ">="&DATE(...) を使う |
この順番で確認すれば、原因を絞り込めます。
よくある質問
SUMIF/SUMIFSでよく受ける質問への回答をまとめた。
Q. SUMIFS と SUMIF、どちらを覚えるべき?
SUMIFSを覚えれば十分。条件1つでもSUMIFSで書けるので、後から条件を追加しても書き直し不要だ。
A. SUMIFS を覚えれば十分 です。条件1つでも SUMIFS で書けるので、統一感が出てメンテナンスしやすくなります(引数の順番だけ注意)。
Q. 大文字小文字は区別される?
SUMIFは大文字小文字を区別しない。区別が必要な場合はSUMPRODUCT+EXACTを使う。
A. 区別されません。"abc" と "ABC" は同じものとして扱われます。区別したい場合は SUMPRODUCT + EXACT を使います。
Q. 結果がどうしても合わない…
この手順で直らない場合はレアケースの可能性があり、AIサポートでの切り分けが近道だ。
記事の手順を試しても直らない場合、特定の構成だけで起きるレアケースかもしれません。AIサポートで対話的に原因を切り分けてみてください。
無料ダウンロード・登録不要のメールだけ
Excelの「詰まりどころ」早見表を1枚に。
COUNTIF・SUMIF・#N/A・エラー6種の《症状→原因→即対応》をA4一枚に凝縮。印刷して手元に。
次に読む
COUNTIF / COUNTIFS が動かない6つの原因と解決法【上から順に試せばOK】
COUNTIF・COUNTIFSで結果が0になる、反映・更新されない、期待した件数と違う、#VALUE!や#NAME?が出る…原因を6パターン解説。読めない文字・余白・範囲・クォート・ワイルドカード・空白に加え、再計算と日付条件の数え方もカバー。
数式がそのまま表示される・計算されない【4つの原因で切り分け】
「=SUM」が文字のまま表示される、緑の三角が消えない、一部だけ計算されない、シート全体の数式が急に表示される…そんなときの原因は主に4パターン。セルが文字列書式・先頭にアポストロフィ・手動計算モード・「数式の表示」モードを症状から切り分けて直す方法を、初心者向けにまとめました。
日付が数字(45678など)になる・直らないときの2つの原因と直し方
セルの日付が「45678」のような数字になる、書式を変えても日付に戻らない…原因は2系統です。表示形式が崩れているだけか、中身が文字列の日付か。シリアル値の仕組みから、書式設定・DATEVALUE・区切り位置で本物の日付に直す方法まで初心者向けにまとめました。