• ベストアンサー

エクセルについて、

エクセルについて、 A1は空白、B1には=IF(A1=0,"",A1)、C1にB1をコピー-値貼り付け、D1に=IF(C1>0,1,0)とすると、D1には1と表示されます。C1には値は表示されていないのになぜそうなるのでしょうか?おそらくC1には何かデータが入ってているのでしょうが、これを削除してC1を空白セルにするにはどうしたらいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.3

長さ0の文字列ですね。 対象セル範囲を選択して置いて下記VBAを実行してみてください。 データセルが含まれていても大丈夫ですが 数式セルが含まれていると値に置き換えられますので注意してください。 Sub test() With Selection .Value = .Value End With End Sub

yasucosmos
質問者

お礼

有り難うございます。参考になりました。今までこの値のセルを見つけては削除していましたが、このマクロで一気に解決しました。本当にありがとうございました。。

その他の回答 (5)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.6

「=IF(C1>0,1,0」の式が「1」を返すのは、文字列(文字数0の空白文字列を含む)は数字よりも大きいという数式が成り立つためです(大小関係を文字コード順で判定するため)。 このようなケースでC列の空白文字列を一括して未入力セルにするなら、C列を選択して「データ」「区切り位置」で「完了」するのが簡単です。

yasucosmos
質問者

お礼

ヌルの意味がよく分かりました。今まで空白だと思っていたのですが、そうではないのですね。ご回答有り難うございました。

yasucosmos
質問者

補足

他の方の回答で、理由は分かったのですが、あなたの方法でした場合、””をなぜ消すことが出来るのか分かりません。お教えください。

noname#204879
noname#204879
回答No.5

》 C1には値は表示されていないのになぜそうなるのでしょうか? 原因は既に他の方が回答されています。 》 D1に=IF(C1>0,1,0)とすると… その式を =IF(SUM(C1)>0,1,0) に変更したら如何?

yasucosmos
質問者

お礼

ご回答有り難うございます。確かに0になりました。

  • takuranke
  • ベストアンサー率31% (3923/12455)
回答No.4

ここご参考に ヌルを値に変換して貼り付けると不思議なデータが出てくるそうです。 http://muratayoshinori-blog.4--d.com/?eid=846118

yasucosmos
質問者

お礼

いろいろと参考になりました。ヌルはやっかいですが、その歴史を読むとおもしろいですね。

回答No.2

空っぽのセルはゼロと等しく、文字列は数値よりも大きいという、 比較演算のルールのせいですね。 最初のルールのせいでB1の条件式は真になり、B1には空文字列が 返って来ています。だからB1とC1には何も見えなくても空文字列が あり、次のルールのせいでD1の条件式は真です。 C1を選択してDELETEキーを押すか、A1をコピーしてくるかすればC1 はちゃんと空っぽになりますよ。

yasucosmos
質問者

お礼

意味がよく分かりました。ご回答有り難うございました。

回答No.1

C1セルには ="" という結果が張り付けられます。 文字の長さ0の文字列です。 とりあえず、C1セルで[Delete]キー で削除できます。

yasucosmos
質問者

お礼

ご回答有り難うございます。よく意味が分かりました。

関連するQ&A

専門家に質問してみよう