SUMIFS関数を使って「以上(>=)」や「以下(<=)」などの条件を指定したのに、結果が0になってしまって困ったことはありませんか。条件は正しいはずだし、データもある。そんなときにチェックすべきポイントや構文の正しい書き方を、初心者にも分かりやすく、専門的な観点から丁寧に解説します。条件の書き方、データの型、日付の扱いなどを見直すことで、多くの「0になる」問題が解決します。
SUMIFS 以上 以下 0になる原因と構文の基本
SUMIFS関数で「以上」「以下」などの比較演算子を用いた条件を設定したとき、期待した合計ではなく0になるケースはいくつかあります。まずは構文の基本と、よくある原因を整理し、0になる理由を把握することが重要です。条件の書き方、範囲の一致、データの型、日付の扱いなど、複数の視点で検討します。
構文で「>=」「<=」を正しく書く
比較演算子を使う条件では、演算子と値を文字列として「””>=”&セル参照」や「”<=10"」などの形にする必要があります。ただ演算子だけを入れて値をセル参照しない場合、「"<=B2"」のように書くとB2が文字列扱いされるため正しく動かないことがあります。最新のExcelやGoogle Sheetsでも、このルールは変わっていません。
範囲(sum_range と criteria_range)の行数や列数の一致
SUMIFSでは、合計範囲(sum_range)と各条件範囲(criteria_range)は同じ行数・列数でなければなりません。不一致があると、正しい合計値が計算できなかったり、エラーまたは0が返されることがあります。書式設定が揃っていても、範囲指定がずれていたら同様の問題が起こります。
データ型の不一致(数値が文字列・日付が数値扱い等)
見た目は数値でも文字列として入力されていたり、日付が文字列のままであったりする場合、SUMIFSはその行を無視してしまうことがあります。例えば「10」と表示されていても文字列型なら条件「>=5」の範囲に含まれないため、結果が0になることがあります。日付の場合も同様で、真の日付型かどうか確認が必要です。
条件が一致するデータがそもそもない
設定した以上・以下の条件に該当するデータが一つもなければ、SUMIFSは正しく0を返します。これはエラーではなく正常な動作です。しかしユーザーは「データはある」と思っていても、目に見えるデータと判定対象のデータ型や範囲が異なっていて0になる場合もあります。COUNTIFSで先に該当数を確認するなどが有効です。
以上・以下の条件を使った実践的なSUMIFSの書き方
ここでは「以上」「以下」の条件を実際に使う場面を想定し、正しいSUMIFSの構文例や応用例を紹介します。データの種類(数値・日付・セル参照)別に書き方と注意点を整理します。
数値を直接指定する例(>= と <=)
たとえば、ある列にある数が 10 から 20 の範囲内にある行の合計を出したい場合、以下のように書きます。
=SUMIFS(合計範囲, 評価範囲, ">=10", 評価範囲, "<=20")
このように、比較演算子+数値を文字列として記述します。引用符を入れ忘れると数式が正しく判定されず、0になる可能性があります。
セル参照を使う例
たとえば最小値をセル A1、最大値をセル B1 に入れておき、その範囲で合計したい場合は、次のように書きます。
=SUMIFS(合計範囲, 評価範囲, ">=" & A1, 評価範囲, "<=" & B1)
このように演算子とセル参照を & で結合します。セル参照を直接比較演算子付き文字列内に入れてしまうと、そのセル参照がテキストとして扱われ、正しく比較されないことがあります。
日付を条件にする場合の書き方
日付を「以上/以下」で比較する場合、日付文字列そのものではなく DATE 関数や日付セル参照を使います。例えば、2026年6月1日から2026年6月30日までの日付を条件にする場合は、
=SUMIFS(合計範囲, 日付範囲, ">=" & DATE(2026, 6, 1), 日付範囲, "<=" & DATE(2026, 6, 30))
あるいは、始点と終点をセルに入力し、=" & 始点セルと<code"<=" & 終点セルのようにします。日付が文字列のままだと判定されず、0になる原因になります。
0になるトラブルの原因別チェックリストと修正方法
SUMIFS 関数が期待した値ではなく 0 を返すとき、チェックすべきポイントを一覧にまとめます。各項目を順番に確認すれば、多くのミスが見つかります。
チェック 1:COUNTIFS で一致件数を確認する
まずは COUNTIFS 関数を使って、設定した条件に該当するデータが本当にあるかを確認します。例えば条件「>=A1」「<=B1」を仮に設定したら、
=COUNTIFS(評価範囲, ">=" & A1, 評価範囲, "<=" & B1)
で返ってくる件数が 0 ならば、条件に一致するデータがないことが原因です。逆に件数があるのに SUMIFS が 0 ならば、合計範囲のデータ型や空白・文字列扱いなどを疑います。
チェック 2:評価範囲と合計範囲のサイズと参照ミス
sum_range と criteria_range の行・列数が一致しているか確認します。例えば sum_range が C2:C10、criteria_range が B2:B100 のような範囲ミスがあると意図した結果になりません。同じシート内でも、別シート参照でも範囲のサイズが同じであることが重要です。
チェック 3:データ型の確認と変換
数値と思っていたものが文字列だったり、日付と思っていたものがテキスト形式だったりすると条件に合わない扱いになります。
以下のような方法でチェックと修正を行います。
- ISNUMBER 関数を使って数値かどうか判断する
- 日付列を数値形式に変換する(DATEVALUE や テキストから列を変換など)
- 文字列の先頭や末尾にスペースがないか TRIM 関数で確認・削除する
チェック 4:条件書式の誤り・引数の間違い
条件に「=」を含める場合、引用符の位置や演算子が正しいか確認します。例えば「”=” & A1」や「”=Text”」など。演算子をセル参照と結合する際の & 演算子を忘れると評価が文字列扱いされてしまいます。また、複数条件を AND 条件で使っている場合、それぞれの条件を一つずつテストしてどの条件がマッチしていないかを絞ることも有効です。
よくあるケース別:応用設定のパターン
実務でよく出てくる「以上・以下」を含む応用例を紹介します。複数条件との組み合わせや部分一致などを含め、使いやすいパターンです。
例えば「売上が A 円以上かつ B 円以下」の設定
売上額が例えば 1000 円以上かつ 5000 円以下を条件にしたいときは、次のように書きます。
=SUMIFS(売上額列, 売上額列, ">=1000", 売上額列, "<=5000")
もし 1000 と 5000 を別セルに入れておきたいなら、それぞれのセル参照を使って演算子と & で結合します。
文字列や分類条件との組み合わせ(複数条件)
数値条件だけでなく、テキストとの組み合わせで合計するケースも多くあります。例えば「売上が 1000 以上かつ 商品カテゴリが ‘食品’ のもの」を合計する場合:
=SUMIFS(売上額列, 売上額列, ">=1000", 商品カテゴリ列, "食品")
ここでの文字列の条件は引用符で囲み、演算子は不要です(文字列そのもの)。他の演算子も適用可能ですが、文字列の場合は比較演算子と数値条件との混合に注意が必要です。
日付によるフィルタリングとの組み合わせ
日付が一定期間内にあるデータだけを合計する用途は特に注意が必要です。
例えば「2026年 5 月 1 日以上、2026年 5 月 31 日以下」のデータを合計するなら、=SUMIFS(合計列, 日付列, ">=" & DATE(2026,5,1), 日付列, "<=" & DATE(2026,5,31)) のようにします。セルに日付を入れておけば、=" & 開始日セル、<code"<=" & 終了日セル として柔軟性が高まります。
SUMIFS で「以上・以下」条件を使うと0になる代表的な誤例と原因別対策
ここでは「以上」「以下」の条件を使ったときに結果が0になる具体的な誤例を挙げ、その原因と対策を示します。実際の現場でありがちなエラーで、ひとつひとつ確認する価値があります。
ケース 1:条件範囲に日付が文字列形式で格納されている
日付が “2026-05-01” のような文字列として保存されていて、条件で DATE関数を使った数値としての比較をしてしまうと、文字列扱いの日付は一致判定されず、0になります。対策としてはその列を正しい日付形式に変換するか、DATEVALUE や NUMBERVALUE を使って実際の日付値に直してから使います。
ケース 2:数値が見た目は数値でも実は文字列
売上額など数値型と思っているセルが文字列になっていると、条件「>=1000」で判定されても比較できず合計範囲対象外となります。ISNUMBER を使って FALSE が返るセルがあれば文字列型ですので、数値変換を行うか、補助列で VALUE 関数を使うなどの方法があります。
ケース 3:条件が AND 条件で矛盾している
複数の条件を AND で結ぶ SUMIFS は、全ての条件が同時に成立する行だけを対象とします。例えば「売上が >=1000 かつ <=500」のように、数値範囲が逆転していると条件を満たす行はゼロになります。そのようなケースでは条件値の位置や入力ミスを疑ってください。
ケース 4:引用符・セル参照の結合の誤り
条件式で演算子と値を結合する際に、「”>” & A1」ではなく「”>A1″」のように書いてしまうと A1 が文字列として扱われ、期待どおりに評価されません。必ず演算子は文字として引用符で括り、セル参照とは & でつなぎます。
追加ヒント:公式の仕様と最新の動作を理解する
SUMIFS関数は最新バージョンでも変わらず複数条件(最大127個)を持て、評価範囲と合計範囲の整合性、演算子と値の組み合わせ、データ型の正確な扱いが重要です。最新情報でもこれらが不備な場合、多くの質問者が「SUMIFSが0を返す」事象で悩んでいます。公式ドキュメントやユーザーのトラブル事例から共通点を学ぶことで、問題を早く発見できます。
まとめ
SUMIFS関数で「以上」「以下」などの条件を指定しても結果が0になるのは、多くの場合、条件の書き方、データ型、範囲指定、条件の論理的矛盾などが原因です。数値を演算子付きで正しく書く、セル参照を演算子と結合する、日付を真の日付型で扱う、範囲の行数・列数を一致させる、条件に合うデータが存在するか COUNTIFS で確認する、などの方法を試してみてください。これらをチェックし修正すれば期待通りの合計が得られるようになります。
コメント