• ベストアンサー

エクセルの条件付き書式のセルに数式がある場合

エクセルの条件付き書式で、ある値以上の場合は、セルの色を変えたいと 考えていますが、セルに数式を入れているためか、値が入っていないのに セルに色がつきます。 具体的には下記に記します。 A1に金額、B1に個数でC1に合計金額を表示させて 合計金額の値によってC1のセルの色を、変えたいと考えています。 C1にはA1とB1に値が入っていない場合は、セルを空白にしたいため =IF(B1="","",A1*B1)という式を入れています。 そこで質問ですが (1)なぜセルが空白で値も入っていないのにセルに色がつくのでしょうか? (2)値が入っていない場合はセルに色がつかない方法はありませんでしょうか? よろしくお願いします。

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

  • ベストアンサー
回答No.4

> =IF(B1="","",A1*B1)に=(A1*B1)>0を組み合わせる いえいえ、単純に   C1セルの式:=A1*B1 で、表示形式を「#,##0;-#,##0;」にしてやるだけです。 これで「ゼロの時は非表示(見た目に空白)」にできます。 添付図C列に例として設定してあります。 失礼、私も質問文をよく読めていなかったようです。 条件付き書式の数式は「数式を~」にこだわらず、 「指定の値を含むセルだけを書式設定」を使ってもできそうですね。 言わずもがな、添付図ではあえてそれを使っていますが、 「次の値より大きい(小さい)」は「次の値を超える(満たない)」です。 「次の値」を含みませんのでお気を付けくださいませ。

sukiyotomo
質問者

お礼

ありがとうございました。 解決しました。

その他の回答 (3)

回答No.3

(1)の質問について 「""」はエクセルでは純粋な空白ではないんです。 「空(から)文字列」と言って「長さ(文字数)が0の文字列」なんです。 なので、条件付き書式も「空白じゃないよ」と判断してしまうんですね。 なおこれは、例えば「=IF(C1>0),正,誤)」の式では正を返します。 普通に「文字列」を入れた時と同じ挙動ですね。 ややこしいですね。 (2)の質問について 条件付き書式で「数式を使用して」は私も同意見ですが・・・ > A1とB1に値が入っていない場合は、セルを空白 なのですから、まずは単純に   条件付き書式の数式:=(A1*B1)>0 と、「ゼロとの比較」で良いのではないかと思いますよ。 で、C列を   式(C1セル):=A1*B1   数値の表示形式:ユーザー定義「#,##0;-#,##0;」    ※表示形式は「正の時;負の時;ゼロの時;文字列の時」で     それぞれ指定できます。     この場合、「ゼロの時」に空白を指定しているので     ゼロなら非表示にしなさい、と指定しているわけです。 としてやれば良いのではないかと思うのですが。 一般的な数式の上では「空白=0」の扱いですので、 例えばA1に数値、B1が空白の時は   数値×空白(0) = 0 が返ってきますよね。両方とも空白なら言わずもがな、ですね。 なので、条件付き書式の話に戻って、 「わざわざ適宜な数字と比較する必要はない  0を超えるかどうかで比較したら良い」 ということですね。

sukiyotomo
質問者

補足

回答ありがとうございます。 =IF(B1="","",A1*B1)に=(A1*B1)>0を 組み合わせると言うことでしょうか? よろしければ、式を教えて頂けませんでしょうか? よろしくお願いいたします。

  • osahune
  • ベストアンサー率47% (288/609)
回答No.2

条件付書式でのルール内容を「次の数式を満たす場合に値を書式設定」として 例として・・・ =IF(B1="","",A1*B1)>3000 というように指定してみては如何でしょうか?

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.1

>値が入っていないのにセルに色がつきます。 「セルに値が入っていない」と言うことは「未入力のセル」と言うことです。 数式が設定されているとその計算結果が代入されますので値が入っています。 空白に見える0文字の文字列("")も値の一種です。 >(1)なぜセルが空白で値も入っていないのにセルに色がつくのでしょうか? あなたが空白と判断しているセルには0文字の文字列が代入されています。 条件付き書式でセル値の大小で判定すると「文字列>数値」と言う関係になり、文字列は全ての数値より大きいことになります。 従って、0文字の文字列のセルにも色がつきます。 >(2)値が入っていない場合はセルに色がつかない方法はありませんでしょうか? 数式で指定すれば文字列が代入されたセルを塗りつぶさないように定義できます。 例 =AND(ISNUMBER(C1),C1>5000) C1セルの値が数値であり、然も、5000以上のとき背景を指定の色で塗りつぶす。