- ベストアンサー
エクセルについて、
エクセルについて、 A1は空白、B1には=IF(A1=0,"",A1)、C1にB1をコピー-値貼り付け、D1に=IF(C1>0,1,0)とすると、D1には1と表示されます。C1には値は表示されていないのになぜそうなるのでしょうか?おそらくC1には何かデータが入ってているのでしょうが、これを削除してC1を空白セルにするにはどうしたらいいのでしょうか?
- yasucosmos
- お礼率67% (29/43)
- オフィス系ソフト
- 回答数6
- ありがとう数7
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
長さ0の文字列ですね。 対象セル範囲を選択して置いて下記VBAを実行してみてください。 データセルが含まれていても大丈夫ですが 数式セルが含まれていると値に置き換えられますので注意してください。 Sub test() With Selection .Value = .Value End With End Sub
その他の回答 (5)
- MackyNo1
- ベストアンサー率53% (1521/2850)
「=IF(C1>0,1,0」の式が「1」を返すのは、文字列(文字数0の空白文字列を含む)は数字よりも大きいという数式が成り立つためです(大小関係を文字コード順で判定するため)。 このようなケースでC列の空白文字列を一括して未入力セルにするなら、C列を選択して「データ」「区切り位置」で「完了」するのが簡単です。
お礼
ヌルの意味がよく分かりました。今まで空白だと思っていたのですが、そうではないのですね。ご回答有り難うございました。
補足
他の方の回答で、理由は分かったのですが、あなたの方法でした場合、””をなぜ消すことが出来るのか分かりません。お教えください。
》 C1には値は表示されていないのになぜそうなるのでしょうか? 原因は既に他の方が回答されています。 》 D1に=IF(C1>0,1,0)とすると… その式を =IF(SUM(C1)>0,1,0) に変更したら如何?
お礼
ご回答有り難うございます。確かに0になりました。
- takuranke
- ベストアンサー率31% (3923/12455)
ここご参考に ヌルを値に変換して貼り付けると不思議なデータが出てくるそうです。 http://muratayoshinori-blog.4--d.com/?eid=846118
お礼
いろいろと参考になりました。ヌルはやっかいですが、その歴史を読むとおもしろいですね。
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
空っぽのセルはゼロと等しく、文字列は数値よりも大きいという、 比較演算のルールのせいですね。 最初のルールのせいでB1の条件式は真になり、B1には空文字列が 返って来ています。だからB1とC1には何も見えなくても空文字列が あり、次のルールのせいでD1の条件式は真です。 C1を選択してDELETEキーを押すか、A1をコピーしてくるかすればC1 はちゃんと空っぽになりますよ。
お礼
意味がよく分かりました。ご回答有り難うございました。
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
C1セルには ="" という結果が張り付けられます。 文字の長さ0の文字列です。 とりあえず、C1セルで[Delete]キー で削除できます。
お礼
ご回答有り難うございます。よく意味が分かりました。
関連するQ&A
- Excelで同数値の数を数える
次のような数値があるとします。 A B C D 201 1 205 2 201 2 205 1 203 1 行A、Cには201、202などの値がランダムに 表示されています。(関数で表示された値です) 行Bには、例えばB1にはA1:A3の範囲中にA1セルで表示されて いる値と同じ値がいくつあるかをカウントしてあるのですが、 このカウントに関数を使いたいのです。 行Dには、A1:C3の範囲で同じようにカウントした結果を表示 させたいと思います。 同じ行に同じ値が表示されていることはありません。 AとCのセルが空白の場合はBとDも空白にしたいため、 IF(A1="","",COUNTIF($A$1:$A$3,A1)) と入力してみたのですが、空白セルに関数があるせいか、 空白セルまでカウントされてしまいます。 行Aの関数を消すとうまくいくのですが、 消さずに、空白セルをカウントしない ようにする方法はあるでしょうか。 お返事お待ちしています。
- ベストアンサー
- オフィス系ソフト
- EXCEL(エクセル)の関数について
こんにちは、お世話になります。 エクセルの数式で困っており、ご教示頂きたいです。 C1のセルに、値を返させたいのですが、 A1の値が◆でB1が空白セルでなければ◇ A1の値が●でB1が空白セルでなければ○ A1の値が▲でB1が空白セルでなければ△ A1の値が■でB1が空白セルでなければ□ 、と返させたいです 全ての条件が満たされない場合は空白セルを表示させたいのですが、これを可能にするにはどのような数式を用いればよいでしょうか? 宜しくお願いします。
- 締切済み
- オフィス系ソフト
- Excelで空白セル直前のセルデータ値を取得したい
Excelで空白セル直前のセルデータ値を取得したいです。 [A] [B] [C] [D] [E] [F] [G] [H] [1] 5 8 9 [A1]~[G1]と順番にデータをスキャンし、空白セルが見つ かったらその直前のセルデータ値を取得し、その値を[H1]に表示す るには、どのようにしたらいいでしょうか。 上記の場合は[D1]が空白セルなので、その前の[C1]の値 9 を [H1]に表示したいです。 宜しくお願いします。
- ベストアンサー
- Visual Basic
- エクセル 売掛遅延月数 2
おせわになります。先日ここで質問し、解決していただいた内容に 重ねて新たな質問をさせてください。 エクセルで売掛金回収遅延管理をしております。 売上計上日(月末)から翌月末日が回収期限で、 それ以降は遅延扱いとしています。 現在(2007/04/30)までの遅延月数を、 レベルに分け、金額を表示するには 例えば↓ 現在2007/04/30で A(売上計上日)、B(金額)、C(遅延12ヶ月超)、D(遅延12ヶ月未満) 1、2005/10/31 、100000、 100000 、 2、2006/12/31 、80000、 、 80000 というデータがあり、上記の表だとC1には100000が、D2には80000が 表示されるように関数を組むには C2セルに =IF(TODAY()>EOMONTH(A2,12),B2,"") D2セルに =IF(AND(TODAY()<=EOMONTH(A2,12),TODAY()>EOMONTH(A2,1)),B2,"") をそれぞれ入力して下方向にコピーします と、これでうまくいって入るんですが、 C2セルに =IF(TODAY()>EOMONTH(A2,12),B2,"") と入れて、下方向にコピーて A列に空白セルがあった場合で、 Bに何かしら数値(合計値など)が入っている場合 もC列にデータが入ってしまいます。 といっても、行数が多いので、下方向コピーは手放せないです。 空白セルは読まずに、C列には何も表示されないようにするには どのようにしたらよろしいでしょうか? どなたか教えてください。宜しくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- Excelの計算式での空白の扱い
Excelの表計算式で例えば"B1"セルと"A1"セルの値を同じにするような式で、セル"A1"が空白だったら、セル"B1"を”0”表示でなく、空白表示にしたいため、 「=IF(A1="","",A1)」 と書くと、"A1"は見た目には空白なのに、何故か"B1"には"0"入ってしまいます。 何故なのでしょうか?
- 締切済み
- オフィス系ソフト
- Excelでのマクロについての質問
ひとつの例ですが A1 佐藤 A2 山田 A3 田中 A4 高橋 A5~A10 空白 B1 山下 B2 田代 B3 吉田 B4~B10 空白 と元のデータが入力されているとします A1~A10,B1~B10に入力されるセル数は変化します 例えばA4~A7にデータがあり、B1~B10は空白という場合もあります ただし必ず上から順に入力されているとします C1~C10、D1~D10には [C1] =IF(A1<>"",A1&"君",""),[C2] =IF(A2<>"",A2&"君","") ・・・ [D1] =IF(B1<>"",B1&"君",""),[D2] =IF(B2<>"",B2&"君","") ・・・ というように元のデータを 加工するための数式が入力されています マクロが登録されているボタンを押すと E1から下方向へC1,C2,C3,C4,D1,D2,D3,(以後空白)と C1~C10、D1~D10の順に空白を除いた「値」が入力されるよう マクロを組むにはどうすればいいでしょうか
- ベストアンサー
- その他(プログラミング・開発)
- 【エクセル】条件によって数式を削除する
エクセルで以下のようなことは実現可能でしょうか? たとえば ・A1の値が「a」のときはC1にはB1を検索値としたルックアップの値を返す。 ・A1の値が「b」のときはC1はルックアップを使用せず直接値を入力させる。 つまり、A1の値によって、C1セルの数式を削除し、完全に空白にするということです。 「IF」関数等ではC1セルを空白にできても数式は残ってしまうため、実現することはできません。 わかりやすく言えば、「条件付書式」では条件によってセルの文字色や背景色を変更することしかできないと思いますが、それをセルの値も含めて変更するような感じです。 方法がお分かりの方、お教えください。
- ベストアンサー
- その他MS Office製品
- エクセルの複数せるの内容の一致を確認したい
エクセルでa1b1c1d1の4セルの値が同じなら●、1つでも異なっていたらXとセルE1に表示させたいのです。 セルが2つだったら=IF(A1=B1,"●","×")とできるのですが多数だとわかりません 教えてください!!
- 締切済み
- オフィス系ソフト
- エクセル IF関数が入った条件付き書式について
エクセルにおいて、セルA1、B1、C1があるとします。A1、B1には数値が何も入力されていない状態で、C1に計算式「=SUM(A1)/B1」が入っているとします。このままでは、C1は、「#DIV/0!」と表示されます。 この表示を消すために、C1にIF、ISERROR関数を使い、「=IF(ISERROR(SUM(A1)/B1),"",SUM(A1)/B1)」の計算式を入力します。 このままでもいいのですが、C1の値が「10以上」になった時に、C1のセルに色を付けたいのです。 書式→条件付き書式→セルの値が→次の値以上→10 にすると、セルに何も値が入っていない(空白)状態で色だけが付いてしまいます。 色々調べると、IF関数の""の空白が文字列のため、数値より大きいとみなされている事が原因っていうことは、分かりましたが、色々試してみても出来ません。何かいい方法はございますでしょうか? ご教授お願いします。
- ベストアンサー
- その他MS Office製品
- エクセルのIF文の質問
お世話になります。 エクセルの条件分岐で、 ・値が0、もしくは空白のときは空白を表示、違ったら値を参照 ・一つ上の行と次の行の値が同じなら空白を表示、違ったら値を参照 という二つのIFを組み合わしたいのですが、どうにもうまくいきません。 A|B|C| 1|あ|い| | 2|あ|0 |う| 3| |0 |う| 例えばこんなデータなら、シート2にその結果を表示させたとして A|B|C| 1|あ|い| | 2| | |う| 3| | | | こんな感じにしたいのです。 現在、 ・1行目に、空白か0なら空白を表示させる式を入力し IF(OR(A1="",A1=0),"",A1) ・2~データの終わりの行に、上と同じなら空白を表示させる式を入力しています。 IF(A1=A2,"",A2) でもこれをするとなぜかうまくいきません。 A2の値が空白だった時に0が表示してしまいます。 それに、自分の作った計算式もなんかスマートじゃない気がしてなりません。 もっと良い方法はないでしょうか?
- ベストアンサー
- オフィス系ソフト
お礼
有り難うございます。参考になりました。今までこの値のセルを見つけては削除していましたが、このマクロで一気に解決しました。本当にありがとうございました。。