Home / Microsoft / Excel / 【2026年最新版】ExcelでSUMIF関数が正しく集計されない・0になる原因と対処法【完全ガイド】

【2026年最新版】ExcelでSUMIF関数が正しく集計されない・0になる原因と対処法【完全ガイド】

※本ページにはプロモーション(広告)が含まれています

「SUMIF関数を使ったのに結果が0になってしまう」「条件に合うはずのデータが合計されない」「#VALUE!エラーが出て困っている」——Excelを使っていると、こうしたSUMIF関数のトラブルに直面することがよくあります。

実はSUMIF関数が正しく動作しない原因の多くは、データの型の不一致・条件の書き方・スペースの混入といった、ちょっとした落とし穴にあります。このガイドでは、よくある原因を7つに分類し、それぞれの対処法をわかりやすく解説します。

この記事でわかること

  • SUMIF関数の基本構文と正しい使い方
  • 結果が0になる・合計されない主な原因と解決方法
  • 数値と文字列の型の違いによる問題とVALUE関数での修正方法
  • ワイルドカード・比較演算子の正しい書き方
  • TRIM関数で空白・スペースを除去する方法
  • 日付条件・絶対参照のよくある間違いと対策
  • SUMIFSとの使い分けと複数条件の設定方法
  • #VALUE!エラーの原因と対処法

SUMIF関数の基本構文

トラブルを解決する前に、まずSUMIF関数の正しい構文を確認しておきましょう。

=SUMIF(範囲, 条件, 合計範囲)
引数 説明
範囲 条件を検索するセル範囲 A2:A100
条件 集計対象を絞り込む条件(数値・文字列・セル参照・比較演算子など) “東京”, “>1000”, B2
合計範囲 合計する数値が入ったセル範囲(省略可) C2:C100

基本的な使用例

たとえば、A列に「商品名」、B列に「売上金額」があるとき、商品名が「りんご」の売上合計を求めるには次のように書きます。

=SUMIF(A2:A100, “りんご”, B2:B100)

この構文が正しく動作しているかを確認したうえで、以下の原因チェックに進みましょう。


原因1:数値と文字列の型の違い(最も多いトラブル)

SUMIF関数が0を返す原因のうち、最も多いのが「見た目は数字なのに、Excelが文字列として認識している」パターンです。

症状の確認方法

セルの値が「数値」か「文字列」かを見分けるには、以下の点をチェックしてください。

  • セルの内容が左揃えになっている → 文字列として認識されている可能性が高い
  • セルの左上に小さな緑の三角マークがある → Excelが「数値らしき文字列」として警告している
  • セルの書式設定が「文字列」になっている
よくある原因:CSVファイルのインポート・コピー貼り付け・外部システムからのデータ取り込みで、数値が文字列になってしまうことが多いです。

対処法1:VALUE関数で数値に変換する

文字列として入力されている数値をVALUE関数で数値に変換します。

=VALUE(A2)

変換後の値を別の列に作成してから、SUMIF関数の参照先をその列に変更します。

対処法2:列ごと一括変換する(貼り付け技)

  1. 空白のセルに「1」を入力してコピー(Ctrl+C)する
  2. 文字列数値が入ったセル範囲を選択する
  3. 右クリック → 「形式を選択して貼り付け」を選ぶ
  4. 「演算」欄で「乗算」を選択して「OK」をクリックする

この操作で、文字列の数値が数値データに一括変換されます。

対処法3:SUMIF側でVALUEを使う

合計範囲のデータが文字列数値の場合、SUMPRODUCT関数と組み合わせることで対応できます。

=SUMPRODUCT((A2:A100=”東京”)*VALUE(B2:B100))

原因2:条件の書き方ミス

SUMIF関数の条件(第2引数)は、書き方のルールが細かく決まっています。ちょっとした記述ミスで条件が一致しなくなります。

比較演算子は文字列として書く

「1000以上」「0より大きい」などの条件を書くときは、比較演算子をダブルクォーテーションで囲む必要があります。

やりたいこと 正しい書き方 間違った書き方
1000以上 “>=1000” >=1000
0より大きい “>0” >0
100以下 “<=100" <=100
0以外(空欄除外) “<>0″ <>0

セル参照と比較演算子を組み合わせる

条件をセルの値と比較したい場合は、演算子とセル参照を「&」でつなぎます。

=SUMIF(A2:A100, “>=”&D2, B2:B100)

D2セルに1000と入力されていれば、「1000以上」の条件でSUMIFが動作します。

ワイルドカードで部分一致条件を設定する

「〇〇を含む」「〇〇で始まる」といった部分一致の条件を指定するには、ワイルドカード文字を使います。

ワイルドカード 意味 使用例 マッチする例
* 0文字以上の任意文字列 “東京*” 東京、東京都、東京23区
? 任意の1文字 “東?” 東京、東大(2文字のみ)
~* ワイルドカードをエスケープ(*自体を検索) “~*” 「*」という文字自体
使用例:商品名に「りんご」を含む行だけ集計する場合
=SUMIF(A2:A100, “*りんご*”, B2:B100)

原因3:空白・スペース・改行が含まれる場合

データを外部システムからコピーしたとき、見た目には気づかない先頭・末尾の半角スペース全角スペースが混入していることがあります。これがSUMIF条件の不一致を引き起こします。

スペースの有無を確認する方法

次の数式でセルの文字数を確認します。もし内容が「東京」(2文字)なのに3以上の数値が返ってきたら、スペースが混入しています。

=LEN(A2)

TRIM関数で余分なスペースを除去する

TRIM関数は、文字列の先頭・末尾の余分なスペースと、単語間の連続スペースを取り除きます。

=TRIM(A2)

修正したデータを別の列に作成してから、SUMIF関数の参照先をその列に変更してください。

SUBSTITUTE関数で全角スペースも除去する

TRIM関数は半角スペースには対応していますが、全角スペースは除去できません。全角スペースが混入している場合はSUBSTITUTE関数を組み合わせます。

=TRIM(SUBSTITUTE(A2, “ ”, “”))

「 」の部分には全角スペースを入力します。これでTRIM後に残った全角スペースもまとめて除去できます。

CLEAN関数で改行文字を除去する

セル内改行(Alt+Enterで挿入した改行)が含まれている場合、CLEAN関数で取り除けます。

=CLEAN(TRIM(A2))

原因4:日付条件の扱い方

SUMIF関数で日付を条件にする場合、いくつかの注意点があります。

日付の比較演算子の書き方

日付条件は、比較演算子と日付文字列を組み合わせて指定します。

=SUMIF(A2:A100, “>=2026/1/1”, B2:B100)

セル参照で日付を指定する場合

日付が入力されているセルを参照するときは、TEXT関数でシリアル値を文字列に変換して使います。

=SUMIF(A2:A100, “>=”&TEXT(D2, “yyyy/m/d”), B2:B100)

または、DATEVALUE関数を組み合わせる方法もあります。

=SUMIF(A2:A100, “>=”&D2, B2:B100)

D2に日付シリアル値が入っている場合は、そのまま「&」でつなぐ方法でも動作することがあります。ただし、日付の書式設定が文字列になっている場合は前者のTEXT関数を使う方法が確実です。

日付範囲で集計する(月別集計など)

特定の月だけを集計したい場合は、SUMIFS関数で開始日と終了日を両方指定します。

=SUMIFS(B2:B100, A2:A100, “>=”&DATE(2026,1,1), A2:A100, “<=”&DATE(2026,1,31))

原因5:絶対参照・相対参照のミス

SUMIF関数を複数のセルにコピーして使う場合、範囲が相対参照になっていると、コピー先でずれてしまうことがあります。

相対参照と絶対参照の違い

参照の種類 記述例 コピー時の動作
相対参照 A2:A100 コピー先に合わせてずれる
絶対参照 $A$2:$A$100 ずれない(固定される)
複合参照(行のみ固定) A$2:A$100 行はずれない、列はずれる

正しい絶対参照の書き方

範囲は固定して条件セルだけを変化させたい場合、次のように書きます。

=SUMIF($A$2:$A$100, D2, $B$2:$B$100)

D2は相対参照にしておくことで、数式をD3、D4……とコピーしたとき、D3、D4の値で条件が変化します。「$」は「F4」キーを押すことで切り替えられます。


原因6:SUMIFSとの使い分け(複数条件での集計)

「条件が2つ以上ある」場合にSUMIFを使うと、うまく動作しないことがあります。2つ以上の条件を指定するにはSUMIFS関数を使いましょう。

SUMIF vs SUMIFS の違い

関数 条件数 構文 引数の順番
SUMIF 1つのみ SUMIF(範囲, 条件, 合計範囲) 合計範囲は最後
SUMIFS 複数(最大127組) SUMIFS(合計範囲, 条件範囲1, 条件1, …) 合計範囲が最初
注意:SUMIF と SUMIFS は引数の順番が異なります。SUMIFSでは「合計範囲」が最初に来ます。混同するとエラーや誤った結果の原因になります。

SUMIFSの使用例

「地域が東京」かつ「売上が1000以上」の合計を求める場合:

=SUMIFS(C2:C100, A2:A100, “東京”, B2:B100, “>=1000”)

OR条件(いずれか)を扱いたい場合

SUMIFSはAND条件(すべて一致)のみ対応しています。OR条件(いずれか一致)を扱うには、複数のSUMIFを合計します。

=SUMIF(A2:A100,”東京”,C2:C100)+SUMIF(A2:A100,”大阪”,C2:C100)

原因7:#VALUE!エラーの対処法

#VALUE!エラーはSUMIF関数でも発生することがあります。主な原因と対処法を確認しましょう。

#VALUE!エラーの主な原因

原因 症状 対処法
範囲のサイズが異なる 範囲と合計範囲の行数が違う 範囲と合計範囲を同じ行数にそろえる
3D参照(複数シート参照) Sheet1:Sheet3!A1 のような参照 SUMIF は3D参照非対応。シートを統合するかSUMPRODUCTを使う
配列数式との競合 Ctrl+Shift+Enterで入力されている 通常のEnterで入力し直す
条件の文字数が255文字超 条件文字列が極端に長い 条件を短くする or セル参照に変更する

IFERROR関数でエラーを隠す

一時的にエラーを非表示にしたい場合は、IFERROR関数を組み合わせます。

=IFERROR(SUMIF(A2:A100, D2, B2:B100), 0)

ただし、エラーの根本原因を解消せずにIFERRORで隠すだけでは問題が残りますので、必ず原因を調べて修正してください。


実用例:売上集計シートでSUMIFを活用する

例1:商品別売上集計

A列に商品名、B列に売上金額が入ったリストから、商品別の合計金額を別シートに集計する例です。

=SUMIF(‘売上データ’!$A$2:$A$1000, E2, ‘売上データ’!$B$2:$B$1000)

別シートを参照する場合は、シート名を「’」(シングルクォート)で囲み、「!」の後に範囲を指定します。スペースを含むシート名は必ずシングルクォートで囲んでください。

例2:在庫管理で特定カテゴリの在庫数を集計

A列にカテゴリ、B列に商品名、C列に在庫数があるとき、カテゴリ「電子機器」の在庫合計を求めます。

=SUMIF($A$2:$A$500, “電子機器”, $C$2:$C$500)

例3:月別・担当者別の売上集計(SUMIFS)

A列に担当者名、B列に売上日(日付型)、C列に売上金額がある場合、特定の担当者の1月分の売上を集計します。

=SUMIFS($C$2:$C$1000, $A$2:$A$1000, “田中”, $B$2:$B$1000, “>=”&DATE(2026,1,1), $B$2:$B$1000, “<=”&DATE(2026,1,31))

SUMIF・SUMIFS・COUNTIFの使い分け比較表

関数 用途 条件数 返す値 こんな時に使う
SUMIF 条件付き合計 1つ 合計値 商品Aの売上合計
SUMIFS 複数条件付き合計 複数(AND) 合計値 東京の1月の売上合計
COUNTIF 条件付きカウント 1つ 件数 商品Aの販売件数
COUNTIFS 複数条件付きカウント 複数(AND) 件数 東京で1000円以上の件数
AVERAGEIF 条件付き平均 1つ 平均値 商品Aの平均単価

トラブルシューティング:チェックリスト

SUMIF関数が正しく動作しない場合は、以下のチェックリストで原因を絞り込んでください。

SUMIF問題チェックリスト

  • □ 合計範囲の数値が左揃えになっていないか(文字列の疑い)
  • □ セルに緑の三角マークが表示されていないか
  • □ 比較演算子(>=など)をダブルクォートで囲んでいるか
  • □ セル参照と演算子を「&」でつないでいるか
  • □ 条件に余分なスペースが含まれていないか(LEN関数で確認)
  • □ 日付条件はTEXT関数で文字列に変換しているか
  • □ 数式をコピーした際に範囲がずれていないか($で固定)
  • □ 条件が2つ以上ならSUMIFではなくSUMIFSを使っているか
  • □ SUMIFSで「合計範囲」が最初の引数になっているか
  • □ 別シート参照で「’」(シングルクォート)を使っているか

参考:おすすめのExcel学習書籍

SUMIF関数を含むExcelの関数をより深く学びたい方には、以下の書籍がおすすめです。


よくある質問(FAQ)

Q1. SUMIF関数の結果が0になるのはなぜですか?

最も多い原因は「数値と文字列の型の違い」です。合計範囲のデータが数値として認識されていない(文字列として入力されている)場合、合計結果が0になります。セルの左揃え・緑の三角マークを確認し、VALUE関数や「貼り付け&乗算」技で数値に変換してください。次に多い原因は、条件の書き方ミス(比較演算子のクォート漏れ)と、余分なスペースの混入です。

Q2. ワイルドカード(*)を使っているのに合計されません。

ワイルドカードはSUMIF関数で使えますが、数値データには使えません。文字列データにのみ有効です。また、「*りんご*」のように前後に「*」を付けた部分一致検索では、データにスペースが混入していると一致しないことがあります。TRIM関数でデータを整理してから再試行してください。

Q3. SUMIFで別シートのデータを参照するにはどうすればいいですか?

別シートを参照するには、'シート名'!セル範囲の形式で指定します。例:=SUMIF('売上データ'!$A$2:$A$100, D2, '売上データ'!$B$2:$B$100)。シート名にスペースが含まれる場合は、必ずシングルクォートで囲んでください。スペースなしのシート名の場合はシングルクォートなしでも動作しますが、付けておくと安全です。

Q4. SUMIF関数で複数の条件(AかつB)を指定したいのですが?

AND条件(AかつB)はSUMIFS関数を使います。=SUMIFS(合計範囲, 条件範囲1, 条件1, 条件範囲2, 条件2)という構文です。SUMIFとSUMIFSで「合計範囲」の位置が違う(SUMIFSでは最初)ので、混同しないよう注意してください。OR条件(AまたはB)の場合は、複数のSUMIFを「+」でつなぎます。

Q5. #VALUE!エラーが出ます。どう直せばいいですか?

SUMIF関数でよく見られる#VALUE!エラーの原因は「範囲と合計範囲のサイズが違う」「3D参照(複数シートまたぎ)を使っている」「条件文字列が255文字を超えている」のいずれかです。範囲のサイズをそろえ、複数シートをまたぐ場合はSUMPRODUCTやデータ統合で対応してください。それでも解決しない場合は、IFERROR関数を使って一時的にエラーを確認しながら原因を絞り込んでいきましょう。


まとめ

ExcelのSUMIF関数が正しく動作しない原因と解決策をまとめます。

SUMIF問題の主な原因と対処法まとめ

  • 数値と文字列の型の違い → VALUE関数や「貼り付け&乗算」で数値に変換
  • 比較演算子の書き方ミス → ダブルクォートで囲む / セル参照は「&」でつなぐ
  • スペース・改行の混入 → TRIM関数・SUBSTITUTE関数・CLEAN関数で除去
  • 日付条件のミス → TEXT関数でシリアル値を文字列に変換
  • 絶対参照の漏れ → 「$」を付けて範囲を固定する
  • 複数条件はSUMIFS → 引数の順番(合計範囲が最初)に注意
  • #VALUE!エラー → 範囲のサイズをそろえ、3D参照を避ける

SUMIF関数のトラブルの大半は、データの型とスペースの問題です。まずLEN関数でデータの文字数を確認し、次に型の確認(左揃え・緑三角マーク)を行うことで、原因を素早く特定できます。このガイドのチェックリストを活用して、確実に問題を解消してください。

Check Also

【2026年最新版】ExcelでIF関数がうまく動かない・エラーになる原因と対処法【完全ガイド】

Excelで作業中、IF関数が …