こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excelの条件付き書式、直接入力と参照した数値は違う?

Excelの条件付き書式、直接入力と参照した数値は違う?


Sheet1のA1セルの数値を
Sheet2のA1セルが「=IF(Sheet1!A1="","",Sheet1!A1)」という数式で参照しています。

数値に、「%以上」という文字列を追加したいので、
Sheet2のA1セルの書式設定を、ユーザー定義で「0"%""以""上"」としています。

Sheet1のA1セルに数値を入力 → Sheet2のA1セルが参照 → ユーザー定義で「○%以上」と表示させる。
・・・ここまでは簡単にできました。

さらに、数値が表示されたときにセルの色を赤くしようと、
条件付き書式で、
「セルの値が 次の値以上 0」
と設定したのですが、入力が無くても赤いままになってしまいます。


設定を、
「セルの値が 次の値以上 ="0"」とか、
「セルの値が 次の値より大きい 0」とか、
いろいろとやってみましたがどうしてもうまくいきません。

参照ではなく、セルに直接入力するのであればこれでうまくいっていましたので、簡単に出来るものだと思っていたのですが、
これはたぶん、私が根本的なことをわかっていないのだと思います。



ご教授頂けましたら助かります。

投稿日時 - 2010-08-31 01:14:53

QNo.6147838

困ってます

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

当方エクセル2000ですが、おっしゃる通りの現象を再現しました。
「セルの値が」ではなく「数式が」をえらび
=AND(A1<>"",A1>=0) としてみてください。

なお、この質問とは無関係ですがCHEVALBOISさんの先日の質問
http://okwave.jp/qa/q6146666.html で

わたし(merlionXX)の回答
=IF(COUNT(Y14:Y15)=2,INDEX($Y$3:$AH$3,1,Y14)&"で"&INDEX($Y$11:$AB$11,1,Y15),"")
ではなく、他の回答
=IF(OR(Y14="",Y15=""),"",INDEX($Y$3:$AH$3,1,Y14)&"で"&INDEX($Y$11:$AB$11,1,Y15))
を採用されましたが、この数式の違いをおわかりでしょうか?

両者ともY14:Y15に空白セルが1つでもあれば、エラーになるのでそれを表示しません。
ただし、Y14:Y15に文字列が1つでも入力されれば、ちがう結果となります。
Y14:Y15に必ず数値をいれさせたいのであれば、OR(Y14="",Y15="") ではなく COUNT(Y14:Y15)=2 で判定すべきです。
もう質問が締め切られているのでここで説明させていただきました。

投稿日時 - 2010-08-31 10:29:00

お礼

なるほど、そういう数式もあるわけですね、

前回教えて頂いた数式はホントに助かりましたm(__)m
ちょっと長めの数式なので、あとで関数辞典で調べてみようと思いつつとりあえずそのまま使わせて頂いてる次第ですw

解説を読ませて頂いて数式の意味はともかく使用目的を考えたらということはよくわかりました。
Y14:Y15どちらか片方だけの入力ということはあり得ませんので・・・


ありがとうございましたm(__)m

投稿日時 - 2010-09-01 00:24:36

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.6

こんにちは。ハンドルネームconantheです。

エクセルも時々不思議なことが起こりますね。理屈で考えたらCHEVALBOISさんのやり方でいいはずなのに、実際はうまくいかない。

いろいろ試してみました。その結果、次のようにすればいいのでは、と思います。

「セルの値が 次の値より小さい ""」

僕の勘違いでしたらごめんなさい。

投稿日時 - 2010-08-31 15:45:07

お礼

ありがとうございますm(__)m

しかし残念ながらお教え頂いたことではうまくできませんでした、
実のところ、できれば数式はつかわないでやりたかったのですが(絶対参照を使ってもコピー等で数式が崩れることがあるため)
やはり数式を使わないと無理みたいです。

また何かありましたら教えてください。

投稿日時 - 2010-09-01 00:28:31

ANo.4

同じ質問が別の掲示板に投稿されていますね(この質問以外にもいくつか同じ質問を投稿されています)。

http://social.answers.microsoft.com/Forums/ja-JP/officeexceljp/thread/68e31cbd-a606-4972-9f24-fb65c5b9d403

この回答では解決できなかったのでしょうか?

一般的に、このような掲示板を利用する場合、同じ質問を2つ以上の掲示板に同時に投稿するのは、回答者に失礼になるだけでなく、マナー違反として認められていないことも多いので注意してください。

どうしても、その掲示板では有効な回答が得られず、解決できないような場合は、その質問をいったん解決処理して、別の掲示板で補足情報を追加して新たに質問するようにしましょう。

投稿日時 - 2010-08-31 10:27:15

お礼

ご忠告ありがとうございます

回答が待てなくてついそうなってしまうことが何度かありました。
今後気をつけますのでm(__)m

投稿日時 - 2010-09-01 00:12:42

ANo.3

一例です。
条件付き書式設定で「数式が」を選択、数式欄に=LEN(セル)をお試しください。

参考です。
・「次の値以上」で「="0"」は文字列の「0」ですから数値と相違しますのでNG、
 「=0」ならば未入力セルも反応するからNG、
・「次の値より大きい」で「0」は期待の通りとなる筈ですが「0」入力は反応しないのでNG。

投稿日時 - 2010-08-31 09:57:02

お礼

=ISNUMBER()や=COUNT()はよく目にしますが、
=LEN()は、はじめて知りました。

何が反応して何が反応しないとか、なかなか理解できませんw
ご説明ありがとうございますm(__)m

投稿日時 - 2010-09-01 00:09:37

ANo.2

 空欄は数値ではないため、「~よりも大きい」という様な、数値の大小を比較する判定の対象外と見なされて、判定が行われないのかも知れません。
 ですから、条件付き書式ウィンドウの左側の欄を「数式」にした上で、右側の欄を次の様にされては如何でしょうか。(A1セルの場合)

=ISNUMBER(A1)

 尚、この条件ではSheet2のA1の値が数値の0やマイナスの場合もセルが赤くなります。
 もし、プラスの場合のみセルを赤くするのでしたら、右側の欄に入力する数式を、次の様に変えて下さい。

=AND(A1>0,ISNUMBER(A1))

投稿日時 - 2010-08-31 08:57:33

お礼

数式でやるとなると、他にもいくつか関数があるようですが、=AND(A1>0,ISNUMBER(A1))は勉強になりました。
今回はそういう使い方はしませんが、これは必ず使うことが出てきそうです
ありがとうございましたm(__)m

投稿日時 - 2010-09-01 00:02:26

ANo.1

エクセルのバージョンは2003です。
「ゼロ以上」という条件はゼロを含むからダメなのだろうと思いますが、
一つのセルで、「セルの値が 次の値より大きい 0」書式:文字の色「赤」を指定。「書式のコピー/貼り付け」ボタンを使ってそのセルの書式を他のセルにコピーしてみました。セルの内容も直接入力ではなく、近くのセルに入力した数値の参照にしました。それで期待した結果になりました。
書式の設定をパターン(ぬりつぶし)にして、やはり期待した結果になりました。
いろいろ試すうちにセルに複数の書式が設定された可能性はありませんか?
新しいシートを開いて試して下さい。

投稿日時 - 2010-08-31 03:06:02

あなたにオススメの質問