- 締切済み
Excelで値が0のときセルを空白にしたい
Excel2007で計算を行っています。 合計を求めた際、値が0となるセルを空白にするにはどうしたらよいでしょうか。 見た目を空白にしたいのではなく、実際のセルの値を空白(BLANK)にしたいです。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
一気に完全な空白にするには、No.3 さんのおっしゃるとおり、マクロを使わざるを得ません。例えば No.4 さんがお示しのコードなどです。 マクロを使わず手作業で「0」を空白にするには、=if(c1,c1,"★") といった数式を作業列に入力。この列を値複写。貼り付け先は同じ列でも隣の列でも可。貼り付けた列を選択して Ctrl+H で置換のダイアログを起動し「★」→「」(未入力)と置換するだけ。パッと終わります。作業列で操作しているので、合計の数式は当然残ります。 SUM で合計していて「0」となる場合だけ数式も除くというのはマクロなしではできませんが、「0」のときだけ、見かけを非表示にすることはできます。セルを右クリック「セルの書式設定>表示形式タブ>ユーザー定義>種類ボックス」に「G/標準;-G/標準;」あるいは「[=0]"";G/標準」などを入力する方法。 あと別法として、自分以外のユーザーなどが気付きにくいのであまりお勧めはしませんが、「Excel のオプション>詳細設定>次のシートで作業するときの表示設定>ゼロ値のセルにゼロを表示する」のチェックを外すことによっても、「0」だけ非表示になります。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! VBAになってしまいますが、一例です。 >合計を求めた際、値が0となるセルを空白にするには・・・ とありますので、数式によって表示されている「0」のセルを空白にする! という解釈です。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim c As Range For Each c In ActiveSheet.UsedRange With c If .HasFormula And .Value = 0 Then .ClearContents End If End With Next c End Sub 'この行まで ※ 入っている数式まで消えてしまいます。 ※ 一旦マクロを実行すると元に戻せませんので、別Sheetでマクロを試してみてください。m(_ _)m
お礼
わざわざマクロを作成していただいてありがとうございます。 今回の件では使用しませんが、今後参考にいたします。
- mpascal
- ベストアンサー率21% (1136/5195)
セルを "" ではなく null の状態にするには、マクロを使わないと出来ないみたいですね。 http://okwave.jp/qa/q3876254.html
お礼
なるほど。 通常の数式や演算ではできないのですね。 ありがとうございます。
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答No1です。 合計の計算でしたね。 例えば次のような式にします =IF(SUM(A1:D1)=0,"",SUM(A1:D1))
お礼
えーと、2回も回答していただいて恐縮ですが、 それはBLANKではありませんよね。 他の閲覧者が勘違いしないよう、間違いであることを明示しておきます。 分からないことは別に悪いことではないと思いますが、 分からないのに無理に回答するのはよろしくないかもしれません。
- KURUMITO
- ベストアンサー率42% (1835/4283)
実際に空白のしたいのでしたら例えばA1セルの値にB1セルの値を乗じた値が0の時に空白とするのでしたら次のような式にします。 =IF(A1*B1=0,"",A1*B1)
お礼
それは空文字列なだけであり、BLANKではありませんよね。
お礼
回答ありがとうございます。 他のシートとの連携で、見た目だけ空白にする方法ではだめなのです。 ただし、他の機会の参考になるかもしれません。 【この質問の回答者の方々へ】 申し訳ありませんが、結果的に必要な情報が得られなかったため、 後からこの質問を見た方が解決したのだと勘違いしないよう、 ベストアンサーは選ばずに締め切らせていただきます。 ご理解ください。