プロが教える店舗&オフィスのセキュリティ対策術

こんばんは、よろしくお願いします
エクセルの初歩の式について教えてください

CV43には次の式が書いてあります
この式ならどんなエラーにも対処できるかどうかは
自分でもよくわかりません

=IFERROR(IF(CR43=1,O43*H43/10000,0),0)

CV列には43行から73行まで
=IFERROR(IF(CR43=1,O43*H43/10000,0),0)を
コピーした式が書いてあります

CV列は非表示のセルで、マクロでソートする際の基準列です
CV列の計算結果はAD列(非表示ではありません)に表示
したいのですが、AD列では0を表示したくありません

そこで質問ですが、AD列の式はどう書けば完璧でしょうか

A 回答 (1件)

関数で行うなら、IF系の関数を使うことになりますね。



 表示する条件を満たしていなければ非表示。
 表示する条件を満たしていれば表示。
と、すればよい。

そしてその条件を考える。
 ・CV列に値が表示されていなければ非表示。
 ・CV列にゼロが表示されているなら非表示。
 ・CV列に数値が表示されていれば表示。
それぞれ、
 CV43=""(非表示)
 CV43=0(非表示)
 上記以外(表示)
となる。
まとめると
 =IF( OR(CV43="",CV43=0) , ”” , CV43 )
こんな感じになる。


・・・余談・・・

自分なら「セルの表示形式」でゼロ値を非表示に指定する。
セルの表示形式は
 プラスの値;マイナスの値;ゼロ値;文字列
のようにして指定できるので、
 #;-#;
のように指定する。
これは、
 ゼロ値に空白を指定する事で、表示を空白にできます。
 文字列は指定しないので、そのまま表示されます。
もしも文字列も表示したくないなら
 #;-#;;
と、セミコロンを増やしてあげましょう。
これで文字列に空白を指定したことになります。

人によっては「条件付き書式」でゼロになったときにセルの色と同じ色で値を修飾することもありますね。
これはゼロはゼロとして集計の対象としたいときに分かりやすいです。
(複数のセルを選択すると入力可能なセル以外のセルの色が変わるので「0」が透けて見えます)
    • good
    • 0
この回答へのお礼

貴重な時間に親切に教えていただきありがとうございます
また、答えだけでなく、考え方や詳しい解説もあり、たいへん分かりやすいです

=IF( OR(CV43="",CV43=0) , ”” , CV43 )
ORを使うのですね、たいへん勉強になりました
0と0以外しか考えませんでしたが、””のケースもありますね

また、表示形式の#;-#;も初めて知りました
省略できるとは思いませんでした
これは簡単でいいですね

たいへん勉強になりました
ありがとうございました

お礼日時:2019/12/06 21:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!