- 締切済み
Excelでの =○○が空白の場合、0と表示されてしまうことの
仮にセルA1で、=B1としたとします。 その時、B1が空白だと、A1には 0 などと表示されてしまいます。 今まではこれの対処として、 =IF(B1="","",B1) として、B1が空白でないのみ表示するという計算式にしています。 ですが、いろんなカ所などで 空白=0表記 となることで、複雑な計算式の場合や、時間などの表示形式、などなど、そのたび上記の式に書き換えなくてはならず、大変手間なのですが、他に 0 ではなく 空白とする方法はありますでしょうか? もしご存じの方法がありましたら、アドバイス頂けたらと思います。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- comv
- ベストアンサー率52% (322/612)
みなさん こんにちは >(ここのセル(仮にX1)を、更に他部分で(仮にZ1)の計算にもちいているのですが、 >X1が空白でなく、0表示(同0:00表示)だとX1が#VALUE!という答えになってしまいます。 >(ちなみにX1の値は同一ファイルの他のシートから指定しています。) 前提が、エラー回避式を入力するのが煩わしいので、できるだけ簡素化したいとのことなので 再参照している場合 まずは、Z1の式 と X1の式を見比べて Z1でエラーが出ない様にX1の式を加工する Z1の式内でX1の値をエラーにならないように加工する のどちらかになってしまいます。(結果、どちらが楽かの選択です) これには X1 Z1 相互の式がどのようなものかが必要なので、現在の式を記載して頂けますか!
- moccos
- ベストアンサー率43% (61/140)
その後の書込みが無いようですので・・・・・ 空白だけでなくエラー値を表示したくない場合は =IF(B1="","",B1) でなく ↓ =IF(ISERROR(B1),"",B1) ■エラーの場合は空白でそうでない場合はB1 となされば如何でしょうか? この場合も空白を参照した場合『0』値は表示されますので comvさん、solisereさんが応えられているように「ゼロ値」を表示しない設定にする必要があります。 ただ、補足の『時刻の0:00』と『0』はご存知とは思いますが表示形式の違いですから0も99も整数であれば『0:00』ですよね? もともとの数式や関数・参照するセルの形式で答えも変化すると思いますので実例を挙げられた方が回答も的確なものになると思います。 余計な言い回しでしたら申し訳有りません。
- comv
- ベストアンサー率52% (322/612)
こんばんは 数式結果が数値である場合 結果が0となったものを全て表示させないでよろしければ ツール オプション 表示タブ ゼロ値 のチェックを外す 特定の範囲の 0 を表示させないなら 範囲選択 書式設定 ユーザー定義 # 数式結果が文字列である場合 =B1&""
補足
comvさん、solisereさん、書き込みありがとうございます。 すみません、例であげたような単純な形では見事できたのですが、そこが時間表示などの場合、対処することが出来ませんでした。 (ここのセル(仮にX1)を、更に他部分で(仮にZ1)の計算にもちいているのですが、X1が空白でなく、0表示(同0:00表示)だとX1が#VALUE!という答えになってしまいます。(ちなみにX1の値は同一ファイルの他のシートから指定しています。) またよろしければアドバイスいただけたらと思います。 よろしくお願いします。 それから、「オプション」での設定変更では、0は表示されなくなったのですが、計算には反映されませんでした。 よろしくお願いいたします。
- solisere
- ベストアンサー率31% (34/108)
「ツール」→「オプション」で 「表示」タブの「ウインドウオプション」 の中の「ゼロ値」のチェックをはずしてみてください。 当方2000なので他のバージョンのことはわかりませぬ。
お礼
すみません、上記の文 を一部訂正の再書き込みです。 ---------------------------------------------- セルG7(出勤) =他のセル!AA1 セルH7 (1時間指定分割) =TIME(HOUR(G7),CEILING(MINUTE(G7),15),0) セルI7 (退勤) =他のセル!BB1 セルJ7(1時間指定分割) =IF(I7<1,TIME(HOUR(I7),FLOOR(MINUTE(I7),15),0),TIME(HOUR(I7),FLOOR(MINUTE(I7),15),0)+1) セルK7(休憩時間) 1:00 セルL7 =IF(OR(E7="-",G7=""),"",J7-H7-K7) としてセルL7に労働時間を求める形です。 TIME関数の部分は1時間を15分単位で区切るためのものです。 このような形ですと、参照元の 他のセル!AA1 が空白の場合、G7には 0 が返され、L7 は エラー値 の #VALUE!となってしまいます。 G7、I7において、今まではこれの対処として、 =IF(他のセル!AA1 ="","",他のセル!AA1) としていたのですが、これに限らずあまりに =IF(○○="","",○○) という式が多く、他のセルなどからリンク(?表現が的確でないでしょうか)するたび この式に書き換えなくてはならなく、また そもそも、なぜ空白なのに 0 が返されるのか?、、と思い、私が知らないだけで何か他の方法があるのではないかと思い、質問書き込みさせていただきました。 また何かご存じの事やアドバイスなどいただけたらと思います。 よろしくお願いします。
補足
comvさん、moccosさん書き込みありがとうございます。 セルG7(出勤) =他のセル!AA1 セルH7 (1時間指定分割) =TIME(HOUR(G7),CEILING(MINUTE(G7),一時間分割単位),0) セルI7 (退勤) =他のセル!BB1 セルJ7(1時間指定分割) =IF(I7<1,TIME(HOUR(I7),FLOOR(MINUTE(I7),一時間分割単位),0),TIME(HOUR(I7),FLOOR(MINUTE(I7),一時間分割単位),0)+1) セルK7(休憩時間) 1:00 セルL7 =IF(OR(E7="-",G7=""),"",J7-H7-K7) としてセルL7に労働時間を求める形です。 TIME関数の部分は1時間を指定分単位で区切るためのものです。 このような形ですと、参照元の 他のセル!AA1 から 0が返され、L7 は エラー値 の #VALUE!となってしまいます。 G7、I7において、今まではこれの対処として、 =IF(他のセル!AA1 ="","",他のセル!AA1) としていたのですが、これに限らずあまりに =IF(○○="","",○○) という式が多く、他のセルなどからリンク(?表現が的確でないでしょうか)するたび この式に書き換えなくてはならなく、またそもそも、なぜ空白なのに 0 が返されるのか?と思い、私が知らないだけで何か他の方法があるのではないかと思い、質問書き込みさせていただきました。 また何かご存じの事やアドバイスなどいただけたらと思います。 よろしくお願いします。