[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『条件付き書式について』(どんべい)
Range("a2:a100").Select Selection.FormatConditions.Delete Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlBetween, _ Formula1:="=$a1*1.5", Formula2:="=$a1*1.99" Selection.FormatConditions(1).Interior.ColorIndex = 37
A列にランダムに数字が入っており、それに上記のような条件付き書式を設定しました。直上のセルを参照して色をつけています。質問は0の入ったセルの下に色がついてしまうのでつかないようにしたいのです。ご教示をお願いします。
< 使用 Excel:Excel2007、使用 OS:Windows7 >
>質問は0の入ったセルの下に色がついてしまう
どうして、一概にそう言えるのですか?
直上のセル値の1.5〜1.99倍ですから、 直上のセル値が0なら 0〜0倍 なので、
自セルが「0か未入力」以外だったら、色は付かないでしょう?
(半平太) 2016/09/20(火) 08:16
Sub 一例() With Range("a2:a100") .FormatConditions.Delete .FormatConditions.Add Type:=xlExpression, _ Formula1:="=AND($A1*1.5<=$A2,$A1*1.99>=$A2,$A1<>0)" .FormatConditions(1).Interior.ColorIndex = 37 End With End Sub
(x-ab) 2016/09/20(火) 08:45
(?) 2016/09/20(火) 23:44
条件その1 直上のセルを参照して1.5倍以上1.99以下なら青色をつける(セルA5ならセルA4の1.5倍以上1.99以下あればセルA5に青色がつきます)
条件その2 直上のセルを参照して2倍以上なら青色をつけ、かつ太字で強調する
条件その3 直上のセルを参照して直上のセルより小さい数値の場合赤色をつける
以上なのですが、ここまでは私もできました。質問は0の入ったセルの下に青色がついてしまうのでつかないようにしたい、ということです。直上セルが0ならば何を掛けても0なので色はつかないはずなのですが、ついてしまうのです。ひきつづきご教示をお願いします
(どんべい) 2016/09/21(水) 00:27
Sub マクロ()
With Range("a2:a100") .FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, _ Formula1:="=AND($A1*1.5<=$A2,$A1*2>$A2,$A1<>0)"
.FormatConditions.Add Type:=xlExpression, _ Formula1:="=AND($A1*2<=$A2,$A1<>0)"
.FormatConditions.Add Type:=xlExpression, _ Formula1:="=$A1>$A2"
.FormatConditions(1).Interior.ColorIndex = 37 .FormatConditions(2).Interior.ColorIndex = 37 .FormatConditions(2).Font.Bold = True .FormatConditions(3).Interior.ColorIndex = 3 End With
End Sub
(x-ab) 2016/09/21(水) 01:57
条件を数式で与えてはいかがでしょう。
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _ "=AND(A1<>0,A2>=A1*1.5,A2<A1*2)"
(β) 2016/09/21(水) 06:07
おはようございます。
解決策は他の皆さんから数式での条件指定方法が出てるので省きますが、青色になる理由だけ説明します。
>条件その1 直上のセルを参照して1.5倍以上1.99以下なら青色をつける(セルA5ならセルA4の1.5倍以上1.99以下あればセルA5に青色がつきます) >条件その2 直上のセルを参照して2倍以上なら青色をつけ、かつ太字で強調する
条件1条件2どちらも同じ理由ですが、 Type:=xlCellValue,Operator:=xlBetween,Formula1:="=$a1*1.5",Formula2:="=$a1*1.99" の条件指定方法では、計算式の結果と比較します。 A1*1.5 は、A1が0の時は、0*1.5=0になります。 この結果の0と比較してるので、0や空白の下のセルが0や空白だった場合青色になります。
もう一つA1が0以外と言う条件を与えてあげなければいけません。
(sy) 2016/09/21(水) 07:13
>条件その1 直上のセルを参照して1.5倍以上1.99以下なら青色をつける
(0以上0以下なら青色、つまり0なら青)
>条件その2 直上のセルを参照して2倍以上なら青色をつけ、かつ太字で強調する
(0以上なら青色太字、つまり正の数なら青太)
負の数はないのでしょうかね。
で結局つねに青色になっているかと。
’
’
素朴な疑問です。
たとえば1の下に3があったら、2倍以上で青の太字、
でも0の下に3の場合は色づけなし?
1が3になるより0が3になるほうがジャンプアップなのに
構わないのでしょうか。 ちょっと不思議な感じです。
( 佳 ) 2016/09/21(水) 07:37
To 佳さん
もう電車で確認出来ないけど、条件2が2倍以上なので、 A2>=A1*2に該当するので青と太字になると思いますよ。
(sy) 2016/09/21(水) 07:46
説明に不備があったので補足です。
xlCellValueの条件がダメでは無くて、以上以下の指定の場合は 計算結果の0が含まれるので、0の回避策が必要と言う事です。
より大きいや未満の場合は0を含まないので、回避策は必要ありません。
(sy) 2016/09/21(水) 07:53
0.1 --> 0.2
1 --> 2
2 --> 4
:
等で青くなってしまうのですが
EXCEL2013です
(?) 2016/09/21(水) 11:05
整数?
実数なら小数何桁まであるのか?
それによって 1.99 〜 2 倍までの場合の対応が変わるのかな?
(?) 2016/09/21(水) 11:13
1.99倍より大きくて、且つ、2倍より小さいデータは
塗りつぶしの対象外になります。
1倍以上、且つ、1.5倍より小さいデータ
(どの条件も満たさないので、塗りつぶしなし)と
区別ができなくなるという理由で
最大値を2倍未満としました。
(x-ab) 2016/09/21(水) 12:45
To syさん
コメントありがとうございます。ことばが足りなかったかもしれません。
現状仰るとおりで、質問はそれを回避したいと。
でも回避だけでいいの?
(暗黙的に)色なしは1.5倍未満では? という認識です、わたしは。
( 佳 ) 2016/09/21(水) 14:51
To 佳さん
こんばんわ。
あぁ、要件は0の下が3などの時に色なしにしたいと言う事だけど、1と3の差よりも大きいので色なしにして良いのかと言う事だったんですね。
どうなんでしょうねぇ?
条件1・2・3どれも不具合出そうですね。
質問者さんへ
例えば以下のような場合、それぞれ何色になれば良いですか?
A 1 空白 2 空白 3 0 4 空白 5 1 6 空白 7 -1 8 空白 9 0 10 0 11 1 12 0 13 -1 14 0 15 1000 16 1991
(sy) 2016/09/21(水) 19:33
左の列はA1よりA10まで数値が入っています、この場合こうなって欲しいというのを右の列に書きます。
0 →ナシ
10 →ナシ(0の下なので)
11.7 →ナシ
45.5 →青線+太字
22 →赤線
0 →ナシ
28.4 →ナシ(0の下なので)
50.2 →青線
94.6 →青線
110 →ナシ
数値は実際と同じです、整数もしくは少数第1位までです。
(どんべい) 2016/09/21(水) 22:04
28.4 56.7 約1.996倍
この場合はどうなるんですか? 今のご提示の条件では色が付きませんが?
後、マイナスは無いのと、0と空白はイコールと言う事で合ってますか?
何となく条件式的には以下のような感じなのかな? 青線の条件式 =AND(A2>=A1*1.5,A2<A1*2) 太字の条件式 =AND(A2>=A1*2,A1<>0) 赤線の条件式 =AND(A1>A2,A2<>0) 皆さんから提示あるように、TypeはxlExpressionで
(sy) 2016/09/21(水) 23:36
負の数はありません、それから0と空白はイコールと言う事で合ってますか?と、いうのはどういうことでしょうか?
私の考えでは0が入っているセルは、0という数値が入ったセルと数え、空白セルは数えません。
↑の私の例では、数値の入っているセルは10、空白セルが1つあるなら9としています。
(どんべい) 2016/09/22(木) 00:59
Formula1:="=AND($A1*1.5<=$A2,$A1*2>$A2)" Selection.FormatConditions(1).Interior.ColorIndex = 37 Selection.FormatConditions.Add Type:=xlExpression, Operator:=xlGreaterEqual _ , Formula1:="=AND($A1*2<=$A2,$A1<>0)" With Selection.FormatConditions(3).Font .Bold = True .Italic = False .ColorIndex = xlAutomatic End With Selection.FormatConditions(2).Interior.ColorIndex = 37 Selection.FormatConditions.Add Type:=xlExpression, Operator:=xlLessEqual, _ Formula1:="=AND($A1>$A2,$A2<>0)" Selection.FormatConditions(3).Interior.ColorIndex = 3 (どんべい) 2016/09/22(木) 01:24
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.