- ベストアンサー
Excel97小数点以下の表示
いつもお世話になってます。 小数点以下の表示についてご存知の方がいらしたら教えてください。 x=round(a/b,0)とします。 0.5>x>0 の四捨五入して0になる場合は0を表示させたいのですが x=0 のときは値を表示させたくないときはどのような書式設定をすればよいのでしょうか。よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! >0.5>x>0 >の四捨五入して0になる場合は0を表示させたいのですが これは、a/bの計算結果が0より大きく0.5未満の時 との意味だとは思いますが、何れにしろROUND()関数数式 での結果は0なのですからa/bが0となる(a=0)の 時との違いを表示形式で判断するのは確実に無理です。 代替案としては 案1.数式を =a/b 表示形式を [=0]#;0 とする。 表示だけは、少数点以下を四捨五入した整数になり ます(実際の計算結果は少数点付きです) 案2.数式は現在のままで メニューの書式 条件付き書式設定で 数式が▼ =a=0 書式ボタン フォント色 白 見かけ上セルと同色となり見えない状態です。 ところでbが0の時は、0での除算となり当然エラーと なりますがその回避式は不要なのでしょうか?
その他の回答 (5)
- nishi6
- ベストアンサー率67% (869/1280)
>x=round(a/b,0)とします。 >(0.5>x>0) の四捨五入して0になる場合は0を表示させたいのですが・・・ 最初のroundでxは整数になっていて、0.5>x>0 はありえない?ここは理解できません。 >(0.5>x>0)の四捨五入して0になる場合は0を表示させたいのですが >(x=0 )のときは値を表示させたくないときは・・・ の2つだけを考えれば、セルの書式設定をユーザー定義で [<>0]0;[=0]""; にしたらどうでしょうか。(マイナスはこれでいい?) 質問にroundがあるので、整数としての表示『0』にしています。当然、『0.0』なども有効です。
- wolv
- ベストアンサー率37% (376/1001)
No1の補足への回答: データだけを見て,もともと0なのか,四捨五入して0なのかがわかるのなら, 対応できるかもしれませんが,そうでないなら無理だと思います. a/b の値がアクセスから出力されてエクセルに入っているのなら, その値が0の時は""を出力する その値が正の時は小数点以下四捨五入 という書式が設定できます. 具体的には, 書式を設定したいセルを選択し, メニューから「書式」→「セル」を選ぶ 開いたダイアログの「表示形式」タブをクリック 「分類」欄は「ユーザー定義」を選び, 「種類」欄に「0;-0;""」と入力し, 「OK」をクリック. これでOK.
- takawasihayabusa
- ベストアンサー率19% (57/295)
=if(X=0、”0”) ちょっとずるいですけどもしxが0のときは0を全角文字で表示させては
- wolv
- ベストアンサー率37% (376/1001)
=if(a=0,"",round(a/b,0)) でどうでしょうか. もちろん,a,bのところには,対応するアドレスに置き換えてください. 0にしてしまってからでは区別がつかないので, 書式設定で対応できないと思います.(これは自信なし)
- wolv
- ベストアンサー率37% (376/1001)
=if(a=0,"",round(a/b,0))
補足
早速の回答ありがとうございます。 補足しますと、この数式はあくまで例えで実際はACCESSで作った 数値を出力していることと作った表を更に加工する可能性を考慮して できるだけ書式設定で処理したいのですが、不可能なのでしょうか。
補足
ありがとうございます。 前の補足でも少し触れましたが、round(a/b)というのは 「小数点以下は表示しない」 という意味合いで出しただけで、実際はaccessのdoubleで計算しています。 ですので計算式自体ははiif関数で処理していますので0除算回避の式は 不要です。 comvさんの案1を採用させていただきたいと思います。 ありがとうございました。