エクセルのSUM関数や数式を使って足し算などの計算をしても、想定している計算がされなかったり、計算結果が0になってしまうことがあります。
色々と調べて原因が分からないでいると、「これはエクセルがおかしいのではないか・・」とも思えてきますが、大抵の場合、正しく計算されないのは原因があります。
この記事では、エクセルでSUM関数や数式を使っても正しく計算されない場合や、計算結果が0になってしまうケースの原因と対処について紹介します。
エクセル│関数(数式)が計算されない・反映されない
この章では、エクセルでSUM関数や数式を使っても正しく計算されない・反映されない場合に考えられる2つの原因について紹介します。
どちらかというと、初歩的な原因となりますので、セルの書式や値に問題がないことが確実な場合は、次章をご参考ください。
セルの書式の問題
エクセルのセルには「数値」や「日付」、「文字列型」というように、値の属性が存在します。エクセルでは、この属性のことを『書式』といいます。
エクセルでは、関数や数式を使って計算(四則演算)するためには、計算対象のセルの書式が「数値」や「通貨」、「会計」など計算を行える書式になっていなければなりません。
逆にいうとセルの書式が「文字列」になっていると計算ができません。(あ+あが計算できないのと同様)
例
セルの書式が「文字列」になっていることが原因の場合、計算範囲の中に、ひとつでも「数値」のセル書式が含まれていれば、その部分に限り計算されます。
逆のパターンで、ひとつのセルのみ「文字列」の書式になっていると発見が難しくなります。
一方、次章で紹介する「循環関数」が原因の場合には、計算範囲の中に、ひとつでも「循環関数」のセルが含まれていると計算結果は必ず0になります。
補足〜他システムのデータ
よくあるケースで、何らかのシステムからエクスポート(ダウンロード)したデータには、見た目では気付かないような空白が値に混在していて、書式が「文字列」になってしまう場合があります。
通常、値に空白が混在していたり、全角数字になっていても、セルの書式で「数値」に変更すれば数値として扱われますが、古いエクセルのバージョンの場合には、空白の除去や半角での打ち直しが必要になるかもしれません。
計算方法が手動になっている
エクセルには、あまり知られていない機能として「計算方法の設定」という項目があります。
計算方法の設定が「手動」になっていれば、SUM関数や数式などを正しく設定しても自動で計算されません。エクセルの数式タブの中に「計算方法の設定」という項目がありますので、自動になっているか確認してみましょう。
エクセル│関数(数式)の計算結果が0になる
この章では、エクセルの計算結果が0になってしまう原因「循環参照」について紹介します。エクセル表が複雑であれば循環参照に遭遇する確率も高くなります。
循環関数は、関数や数式の入力誤りですが、すぐには気付けないパターンであり、循環参照を知っていないと尚更、原因として特定し難くなるのです。
循環参照
下記のイメージをご覧ください。
A列からG列にかけて、3行目〜6行目の加算結果を7行目に表示しているように見えますが、実はG列のみSUM関数の設定が誤っています。
本来、合計値を表示するための7行目もSUM関数の計算範囲に含めてしまっているのです。この状態のことを、『循環参照』といいます。
ただし、このサンプルではG列は未来日付の列であり、現時点では合計が0で正しいため、SUM関数の設定の誤りに気付けないのです。
そして、H列の7行目では、C列からG列にかけての小計値を加算しているつもりですが、計算結果は0になっています。(セルH7)
このように、SUM関数や数式(=C7+D7+E7+F7+G7等)の計算範囲に、循環参照のセルがひとつでも含まれていると、計算結果は0になります。
シート内に循環参照が発生している場合には、エクセルの左下に循環参照と表示されますので、この循環参照を修正すると正しく計算されるようになります。