情報学ブログに書くほどではないニュースネタのためのサブブログ

トップ
">ニュース
">パソコン・インターネット
">学問・資格
">情報学
">携帯・デジカメ
">日記・コラム・つぶやき
">映画・テレビ ">経済・政治・国際 ">ニュース ">パソコン・インターネット ">学問・資格 ">情報学 ">携帯・デジカメ ">日記・コラム・つぶやき ">映画・テレビ ">経済・政治・国際 ">ニュース ">パソコン・インターネット ">学問・資格 ">情報学 ">携帯・デジカメ ">日記・コラム・つぶやき ">映画・テレビ ">経済・政治・国際 ">ニュース ">パソコン・インターネット ">学問・資格 ">情報学 ">携帯・デジカメ ">日記・コラム・つぶやき ">映画・テレビ ">経済・政治・国際
アーカイブ

Excelで空白セルを参照すると0と表示されてしまう問題を解決する

ニュース | 2008/07/24

○何が問題か

Excelで空白セルを返す式は、セルに代入される時点(つまり、"="が適用される時点)でゼロに変換されます。

たとえば、A1が空白セルとして、=A1とすると、0と表示されます。

ただし、ここで重要なのは、「セルに代入される時点」ということです。このため、A1が空白セルのとき、=ISBLANK(IF(TRUE, A1, ""))はTRUEになります。

○一般的な解決方法(IF関数を利用)

これに対してよく使われるのは、IF関数を使って、空白セルを空白文字列("")で置き換えるということです。○を数式として、

=IF(ISBLANK(○), "", ○)
=IF(○="", "", ○)

とすれば、めでたく何も表示されなくなります。この方法は、以下のサイトでも紹介されています。

http://www.relief.jp/itnote/archives/001357.php

(ちなみに上の二つの数式は完全に同じ結果になります。実は、ISBlANK("○")と○=""は同じ結果になりません。○が空白セルではなく、空白文字列の場合、ISBLANK("○")はFALSEになりますが、○=""はTRUEになるからです。上の数式の場合、一つ目ではIFの条件式がFALSEになり、二つ目ではIFの条件式がTRUEになります。しかし、IFの結果はどちらも空白文字列です。)

○IF関数の問題

ただ、この方法では、○の数式が複雑で計算に時間がかかる数式である場合、計算時間が2倍必要になってしまいます。また、式が複雑になり、メンテナンスの手間が増えます。

さらに、結果が空白文字列というのも大変扱いづらいものです。というのも、空白文字列は空白セルと異なり、数値として扱うことができません。たとえば、空白セルを指すセル参照に1を加えると1になりますが、空白文字列が入ったセルを指すセル参照に1を加えるとエラーになるのです。これを解決するには「空白文字列だった場合は、0に変換する」という処理を入れる必要があるので大変面倒です。

(ちなみに、空白文字列を0に変換するためには、IF(○="",0,○")とするより、SUM("○")とした方が簡単です。ただし、この場合、空白文字列以外の文字列でもエラーにならないので注意が必要です。)

○エレガントな解決方法(表示形式を利用)

そこで便利なのが、そのまま「ゼロ」をセルに代入した上で、表示形式の設定で、0だったら表示しないとする方法です。このためには、表示形式をユーザ定義にして、[=0]""とするだけです。

この方法のメリットは作業が簡単でわかりやすいのに加え、このセルは計算上「ゼロ」として扱われるという点です。このため、このセルをそのまま数値として計算に使うことができます。

ただし、この方法は、ゼロと空白セルを区別する必要がある場合には使えません。普通にゼロと表示したいセルまで何も表示されなくなってしまうからです。この場合はやはりIF関数を使う方法しかないと思います。

○付録

さて、一般に、表示形式の設定では、以下のような場合分けをすることができます。今回使ったのは最後のものですが、他の書式と組み合わせる場合は、他のパターンを使わないといけない場合もあります。ネットで検索しても見つからなかったので、まとめておきます。

表示形式 条件 正の数 負の数 ゼロ 数値以外
a; "b"; "c"; "d" a b c d
a; "b"; "c" a b c 標準
a; "b" a b a 標準
a a -a a 標準
[条件]"x"; "a, "b", "c" x b a b c
[条件]"x"; "a, "b" x b a b 標準
[条件]"x"; "a x a -a a 標準
[条件]"x" x 標準 標準 標準 標準
[=0]"x"; "a, "b", "c" b a x c
[=0]"x"; "a, "b" b a x 標準
[=0]"x"; "a a -a x 標準
[=0]"x" 標準 標準 x 標準

[=0]は通常の条件と同じ扱いですが、参考までに掲載しました。また、条件は2つまで指定することもでき、どの条件にも当てはまらなかった場合を、その後に指定します。条件を指定する場合は、それ以降の条件で正の値とゼロの値を区別できません。

はてなブックマークに追加 del.icio.usに追加 POOKMARK Airlinesに登録 livedoorクリップへ追加 @niftyクリップへ追加 Buzzurlにブックマーク newsingにピックアップ Choixに投稿 Furlへ追加 Blinklistへ追加 Redditに投稿 twitterでReTweet

固定リンク | コメント(0件) | トラックバック(0件)

コメント

トラックバック

この記事のトラックバックURL:
(トラックバックは記事投稿者が公開するまで表示されません。)

ニュースな待合室をRSSで購読する

Googleで購読 はてなRSSで購読 livedoor Readerで購読 Bloglinesで購読 My Yahoo!に追加

その他のRSSリーダー

管理人のつぶやき