SUMIFの結果が0のときに条件、数値、範囲を確認する順番
Tutorials

ExcelのSUMIFが0になるときの直し方|条件・数値・範囲の3点を確認

ExcelのSUMIFが0になる・合計されないときの確認順

ExcelのSUMIFが0になる、または一部しか合計されないときは、「条件」「数値」「範囲」を分けて調べます。

該当額がすべて0、または正負の金額が相殺された0は正しい結果です。

条件はCOUNTIFで一致件数を確かめ、金額はISNUMBERで数値かを確認。最後に条件範囲と合計範囲の開始行・終了行をそろえます。

いきなり元データを上書きせず、シートのコピーなどを残してから進めてください。

確認する点 使う式・見る箇所 この例の正常値
条件 =COUNTIF(A2:A4,D2) 2
数値 =ISNUMBER(B2) TRUE
範囲 A2:A4とB2:B4の行 ともに2〜4行目

SUMIFの結果が0のときに条件、数値、範囲を確認する順番

これは確認順を示す説明用の図解です。実際のExcel画面ではなく、架空データを使っています。

SUMIFが0または一部だけになる原因を、同じ3行の表で条件・数値・範囲の順に切り分けます。

まず3行の表で正しい合計を確認する

ここからは、学習用の架空データを使います。結果はMicrosoftが示すSUMIFの仕様に基づく期待値です。

セル A列:区分 B列:金額
2行目 文具 1200
3行目 飲料 800
4行目 文具 500

D1に「集計する区分」、D2に「文具」と入れます。基本式は次のとおりです。

=SUMIF(A2:A4,D2,B2:B4)

引数は「条件を調べるA列」「条件セルD2」「合計するB列」の順です。文具の1200と500を足すため、結果は1700です。

条件を式に直接書くなら、=SUMIF(A2:A4,"文具",B2:B4)でも結果は1700です。D2のようなセル参照には引用符を付けません。

1. 条件の文字とセル参照を確認する

まず空きセルに=COUNTIF(A2:A4,D2)と入れます。COUNTIFは条件に合うセル数を返す関数です。

この例では「文具」が2件なので、COUNTIFの結果は2です。0ならD2の文字とA列を見比べ、想定より少なければ一部の表記や参照漏れを確認します。

=SUMIF(A2:A4,"D2",B2:B4)とすると、D2の内容ではなく「D2」という文字を探します。この表には該当せず、結果は0です。

A2の「文具」の末尾に半角空白がある変形例では、D2と一致するのはA4だけです。COUNTIFは1、SUMIFは500になります。

少数のセルなら数式バーで前後の不要な空白を確認し、元のラベルの意味を変えずに直します。ワイルドカードの*でごまかさないでください。

TRIMを使うなら、補助列で=TRIM(A2)とし、結果を見てから採用します。TRIMはすべての空白文字を除けるわけではありません。

COUNTIFが2でも、金額が数値とは限りません。件数が正しければ、次にB列の中身を調べます。

2. 金額が数値かISNUMBERで確認する

空きセルに=ISNUMBER(B2)と入れます。数値の1200ならTRUE、文字列として保存された1200ならFALSEです。

ISNUMBERは数値かどうかを判定するだけで、文字列の数字を自動変換しません。FALSEの場合は、文字列のほかに空白やエラーでないかも見ます。

見た目が1200でも文字列ならISNUMBERはFALSE、数値ならTRUEとなる比較

これは保存された型の違いを示す説明用の図解です。実際のExcel画面ではなく、架空データを使っています。

B2の1200だけが文字列の変形例では、条件は2件でも、加算されるのは数値の500だけです。SUMIFの結果は500になります。

B2とB4がどちらも文字列なら、加算できる文具の金額がなく、結果は0です。表示形式を変えただけで終えず、ISNUMBERで再確認します。

元の列を残してVALUEで直す

空いているC列を補助列として使えば、B列をすぐに上書きせずに確認できます。

VALUEは合計に使う金額列だけに使います。商品番号や郵便番号など、先頭の0を残す識別子は数値に変換しません。

  1. C1に「変換後金額」、C2に=VALUE(B2)と入れ、C4までコピーする。
  2. C2:C4が1200、800、500となり、=ISNUMBER(C2)がTRUEになることを確かめる。
  3. =SUMIF(A2:A4,D2,C2:C4)の結果が1700になることを確かめる。
  4. B列へ戻す必要がある場合だけ、C2:C4をコピーし、B2へ「値」の貼り付けを行う。

Microsoftの文字列数値の変換手順では、警告メニューから数値へ変換する方法と、VALUEを使う方法が示されています。

警告メニューの名称や配置は環境で異なることがあります。警告がないときは、補助列でVALUEを使えます。

VALUEが#VALUE!になるセルは、単位や不要な文字が含まれていないかを確認します。IFERRORで0に隠さず、元の表記を見直しましょう。

3. 条件範囲と合計範囲の行をそろえる

基本例の条件範囲はA2:A4、合計範囲はB2:B4です。どちらも2行目から4行目までの3行で、A2とB2のように同じ行同士が対応します。

条件範囲A2からA4と合計範囲B2からB4で同じ行を対応させる図

これは条件列と合計列の対応を示す説明用の図解です。実際のExcel画面ではなく、架空データを使っています。

=SUMIF(A2:A3,D2,B2:B3)では4行目が両方の範囲から抜けるため、500が入らず、結果は1200です。必要な最終行まで両方の範囲を伸ばします。

=SUMIF(A2:A4,D2,B3:B5)のように開始行がずれると、A2にB3、A3にB4という意図しない対応になります。

条件範囲と合計範囲の大きさが違っても、必ずエラーで止まるとは限りません。数字が表示されていても、開始行と終了行を見てください。

合計範囲を省略していないか

SUMIFの構文はSUMIF(範囲,検索条件,[合計範囲])です。第三引数を省くと、第一引数の範囲そのものが合計対象になります。

=SUMIF(A2:A4,D2)では、区分名が入ったA列を合計しようとするため、この例の結果は0です。金額列のB2:B4を第三引数に加えます。

ただし、合計範囲の省略自体が常に間違いではありません。=SUMIF(B2:B4,">=1000")のように同じ列を条件判定して足す式では、基本例の結果は1200です。

直したら1700と一致件数をもう一度確認

修復後は、実際に合計する列に合わせて、次の4点を順に再確認します。

  • COUNTIF(A2:A4,D2)が2
  • C列を使う場合はC2・C4、B列へ値を戻した場合はB2・B4のISNUMBERがTRUE
  • 条件範囲A2:A4と、使用する合計範囲C2:C4またはB2:B4が、ともに2〜4行目
  • C列を使う場合は=SUMIF(A2:A4,D2,C2:C4)が1700。B列へ値を戻した場合は=SUMIF(A2:A4,D2,B2:B4)が1700

1700はこの架空例だけの期待値です。自分の表では、該当行の金額を手計算した値とSUMIFの結果を比べます。

まだ合わなければ、元表から3行程度をコピーした小さな確認表で、条件と金額の中身を見比べてください。

なお、Microsoft公式のSUMIFページにはMicrosoft 365、Excel 2024、Excel 2021、Excel 2019、Excel 2016などが対象として記載されています。

本文はそれらに共通する関数仕様の確認手順です。

まとめ

SUMIFが0になるときは、すぐに式全体を作り直すより、条件・数値・範囲を1つずつ切り分けると追いやすくなります。

まずCOUNTIFで一致件数を見て、次にISNUMBERで金額の型を確認。文字列の数値は元列を残し、VALUEを入れた補助列で変換します。

最後に条件範囲と合計範囲の行をそろえ、第三引数の省略が意図どおりかを確かめてください。

元データを残したうえで、3行の小さな例から同じ順番で調べてみましょう。

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です