空欄を計算するとエラーになる


セルの数値を合計するときは「=A1+A2」のようにセルのアドレスを計算します。しかし、こうした簡単な数式が予期せぬエラーになることがあります。それは空欄("")を計算しようとしたときです。

下図の表で解説します。セル範囲A2:A3には数値を入力してあります。右隣のセル範囲B2:B3には、A列が空欄だったら空欄、空欄でなかったらA列の数値を2倍するという簡単なIF関数を入力しました。セルB4では「=B2+B3」という参照式で合計を求めています。

特に難しいことをしているわけではありません。ところが、セルA3の数値を[Delete]キーなどで削除するとどうなるでしょう。

セルB4の数式がエラーになってしまいました。これは「=IF(A2="","",A2*2)」という数式が原因です。このIF関数では、A列のセルが空欄だったとき「空欄("")」を返すように指示しています。この「空欄("")」は数値ではありません。"田中"や"tanaka"と同じ文字列なのです。文字列を計算できないのは、Excelの仕様というよりも数学の基本的なルールです。なぞなぞやトンチ問題でない限り「10 + 田中」を計算することはできません。Excelには残念ながらトンチのセンスがありませんので「10 + 空欄("")」を計算することはできないのです。これを解決するには2つの考え方があります。

  1. 空欄ではなく「0」を返すようにする
  2. SUM関数を使う

空欄ではなく「0」を返すようにする

IF関数の返す空欄("")が文字列だから計算できないのです。それなら、空欄ではなく「0」を返すようにすれば問題はありません。

「だけど、0が表示されるのはイヤだなぁ」という人は「0」が表示されないようにしましょう。Excelのオプション画面を開き、[詳細設定]-[次のシートで作業するときの表示設定]-[ゼロ値のセルにゼロを表示する]チェックボックスをオフにしてください。これで「0」が表示されなくなります。

「それではすべての0が見えなくなってしまって困る」という人は表示形式を設定してください。詳しい解説は「0を表示しない表示形式」をご覧ください。

SUM関数を使う

もし「=B2+B3」の式を変更してよいのなら、これを「=SUM(B2:B3)」とSUM関数を使った数式にします。

「=A1+A2」のようにアドレスを指定した参照式では、セルに文字列が入っていたときエラーになります。しかし、SUM関数には、引数に指定したセルに文字列が入っていた場合、その文字列を無視するという特性があります。もし非連続のセルを合計したいのなら「=SUM(A1,B3)」のようにカンマ(,)でアドレスを区切ってください。