機能と数式 | VBA | セミナー | オンラインソフト | お問い合わせ | その他
Top > Excel > 機能と数式

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



セルの数値を合計するときは「=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」が表示されないようにしましょう。[ツール]-[オプション]を実行して[オプション]ダイアログボックスを開き、[表示]タブの[セロ値]チェックボックスをオフにします。これで「0」が表示されなくなります。

クリックすると拡大します。拡大画像はクリックすると消えます

「それでは全ての0が見えなくなってしまって困る」という人は条件付き書式を使います。「0」を表示したくないセルを選択して[書式]-[条件付き書式]を実行し、「セルの値」が「0」だったら文字のフォントを「白」に設定します。





「そのセルにはすでに条件付き書式を3つ設定してるんだよね〜」という人。あんまりワガママ言うと嫌われますよ。それなら表示形式で「0」を非表示にしてください。やり方は「0を表示しない表示形式」をご覧ください。

SUM関数を使う


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





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






このエントリーをはてなブックマークに追加