- ベストアンサー
計算結果が0なら空白にしたい。ただし・・・
計算結果が0なら空白にする場合はこう書けばよいですよね。 IF(計算式=0 , "" , 計算式) ただし計算式がすごく長くて複雑だと IF(すごく長くて複雑な計算式=0 , "" , すごく長くて複雑な計算式) となってしまいますよね。 これをもっと短くシンプルに記述する方法はあるでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
1. 書式-条件付書式-セルの値が0ならフォントの色をセルの色と同じにする (表示だけさせない) 2. 計算セルを別に用意して if(計算セル=0,"",計算セル) 3. セルの書式-表示形式-ユーザ定義-「#」と入力
お礼
今回の質問での「すごく長くて複雑な計算式」とは実は「INDIRECT(長くて複雑な参照)」という形でした。 INDIRECT関数は参照先のセルに記述された参照先のセルの値を得るというものでした。(C言語のポインタみたいなもの?) ところが参照先の参照先が空白セルの場合、返り値が空白ではなく0になってしまうという仕様のため、今回困ってしまいました。(質問No.1672392 INDIRECT関数で参照先が空白セルの場合) で、結局次の式である程度解決しました。 =VALUE(TEXT(INDIRECT(A1),"###.#")) 一度文字列に変換して再度数値に戻すということでした。参照先の参照先が空白セルのときはエラーになるけど、グラフにはプロットされないので好都合でした。エラーは条件付書式で見えなくしました。 いろいろご回答ありがとうございました。
補足
すいませんまとめて補足させてください。 実は計算結果をグラフにプロットするので、オプションで0を表示しないとか、フォントの色を背景色と同じにするでは、だめなんです。セルの書式設定を#にする方法もだめでした。 最初に書くべきでしたm(__)m。 あとEXCELだとグラフにプロットするときに0をプロットしないというオプションがあるそうですが、私はOpenOfficeを使っているのでその機能がないんです。 あ、もちろんほぼEXCEL互換なので皆さんの回答も有効利用させていただいてます。 ということで今回の質問に対する答えは 計算セルを別に用意して、ということになるのでしょうか? もしウルトラCの技があったらお願いします。