[[20241122184915]] 『条件付き書式のみを下にコピーしたいです。』(木の実) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『条件付き書式のみを下にコピーしたいです。』(木の実)

23.4 23.6 23.7 23.5 23.7 23.1
24.8 23.6 23.7 23.5 23.7 23.1
34.9 35.5 34.7 34.5 34.9 33.9

1列目のみで書式で大きい数字は赤、小さい数字は緑の書式を
2列目のみで書式で大きい数字は赤、小さい数字は緑
3列目のみで書式で大きい数字は赤、小さい数字は緑
.
.
100列目のみで書式で大きい数字は赤、小さい数字は緑
と列ごとの条件書式を下にコピーしたいです。

普通に書式のみコピーをすると
1〜100全てのセルで大きい数字は赤、小さい数字は緑
となってしまいます。

どなたか教えていただけると助かります。

よろしくお願いいたします。

< 使用 Excel:Excel2019、使用 OS:Windows11 >


 >列ごとの条件書式を下にコピーしたいです。
 「列」で合ってるんですか?
 「行」の間違いでは?

 ・「行ごとに」最大値、最小値に色をつけたい
 ・表の範囲は A1:F100
 ・100行目まですべて数値が入っている

 A1:F100を選択し、条件付き書式〜ルールの管理
 新規ルール
 ルールの種類:数式を使用して、書式設定するセルを決定

 数式:=MAX($A1:$F1)=A1  赤

 もう一度、新規ルール
 数式:=MIN($A1:$F1)=A1  緑

 ■または・・・
 A1:F1の「1行だけ」を選択し、上記の条件付き書式を設定

 適用先が
 =$A$1:$F$1  になっているのを
 =$A$1:$F$100 に変更(2か所とも)

 以上
(笑) 2024/11/22(金) 21:17:07

 こんなことがあるのかどうか知りませんけど
 1行すべて同じ値とか
 1行に数値が 1つしかない場合
 どうなればいいんですか?

 最大値(赤)にしたいのなら
 最小値→最大値の順に設定してください。
 ※設定後に優先順位を変更することも可能

 参考まで
(笑) 2024/11/22(金) 21:53:13

(笑)さんお返事ありがとうございました!

すいません、間違えました「行」です…

また、もう一点補足です。

「条件付き書式」>「カラースケール」>「左上から2番目」

の最大値(赤)> 中間値(黄)> 最小値(緑)

のようなグラデーションにしたいです。

1行に数値が 1つしかない場合はほとんどないので、
その場合は緑でも赤でもどちらでもよいです。

2つはたまにありますが、
その場合は
最大値(赤)最小値(緑)
にしたいです。

よろしくお願いいたします。
(木の実) 2024/11/25(月) 12:02:10


 マクロでセットしてみました。試してみてください。
 (コピーして書式貼り付けでもよいかもしれませんが、
   他の書式に影響が生じることを避けて、直接、条件付き書式を設定しました)

 【使い方】 
 ・以下のコードを標準モジュールにコピーペイストしてください。
 ・対象とするシートがアクティブになるようにしてください(その表が表示されている状態であればOKです)
 ・マクロtestを実行して下さい。

 Sub test()
     Dim rng     As Range
     For Each rng In [A1].CurrentRegion.Rows
         With rng.FormatConditions
             .Delete
             .AddColorScale ColorScaleType:=3

             .Item(1).ColorScaleCriteria(1).Type = xlConditionValueLowestValue
             With .Item(1).ColorScaleCriteria(1).FormatColor
                 .Color = 8109667
                 .TintAndShade = 0
             End With

             .Item(1).ColorScaleCriteria(2).Type = xlConditionValuePercentile
             .Item(1).ColorScaleCriteria(2).Value = 50
             With .Item(1).ColorScaleCriteria(2).FormatColor
                 .Color = 8711167
                 .TintAndShade = 0
             End With

             .Item(1).ColorScaleCriteria(3).Type = xlConditionValueHighestValue
             With .Item(1).ColorScaleCriteria(3).FormatColor
                 .Color = 7039480
                 .TintAndShade = 0
             End With
         End With
     Next
 End Sub

(xyz) 2024/11/25(月) 13:01:00


 >普通に書式のみコピーをすると

フィルハンドルをドラッグして書式のみコピーをするとそうなるようですが、
コピーして、形式を選択して貼り付けで書式のみ貼り付けをすると、
行毎に設定できそうです。
(100回、コピーと貼り付けをすることになりますが。)
(まっつわん) 2024/11/25(月) 13:25:06


 まあそうですね。

 最初の行に条件付き書式をセット
 それをコピー
 次の行の最初のセルに移動
 書式のみ貼り付け
 次の行の最初のセルに移動
 Ctrl+Y
 次の行の最初のセルに移動
 Ctrl+Y
 ・・・以下同じ
 を100回分繰り返せば可能は可能です。
(xyz) 2024/11/25(月) 13:31:39

(xyz)(まっつわん)さんお返事ありがとうございます!

すいません、例として100と書きましたが、実際には2500〜3000行ほどありますので、
コピペは現実的ではない感じです。

また、月に一回リスト自体を更新(作り直し)しなければならず、
さらに現実的ではない感じです。

マクロでなければ難しいのでしょうか?
あまりエクセル自体得意ではないため、
できればマクロ以外だと助かります!

よろしくおねがいいたします!
(木の実) 2024/11/25(月) 18:12:29


 (1)
 "excel カラースケール 多数の行をまとめて設定"でGoogle検索してみて下さい。
 同様の悩みが寄せられていますが、名案はないようです。

 回答の一例としてこんなのがありました。
 > 残る手段は VBA で1行分のコピーを必要行までループ処理といったところでしょう。
 > VBA でコードを考えるか募ると良いと思います。

 貴方の場合は、コードを募らなくてもすでに提示されているのが僥倖かと思います。(そうは思っていないようですが)

 (2)
 数式で代替できるかとふと思いましたが、グラデーションをつけようと思えば、
 条件付き書式の数も多数に上り、実際的な感じはしません。
 6色くらいの粗い色付けなら、最大値、最小値との関係で、当該セルの値をもとに6区分し、
 それぞれにあなたの好きな色をつけるようにする「数式指定による条件付き書式」を設定すればよいでしょう。
 これならあなたのほうでトライできるかもしれません。

 (3)
 マクロは、内容を理解できなくても使うことはできるはずです。
 そのマクロで変更が発生するとすれば「対象範囲」でしょう。

 これは、
 For Each rng In [A1].CurrentRegion.Rows
 のところを
 For Each rng In Selection.Rows
 に変更したうえで、
 マクロを実行する前に「対象範囲を選択状態にしておいて」、
 マクロを実行すればよいでしょう。
 ボタンにでもマクロを登録して置けば、「範囲を設定してボタンをポチ」で終了です。

 あとのところはパターンを変えない限り変更は生じません。
 おまじないと思って使えばよいのです。
 車を運転する時にエンジンの構造を詳しく知る必要がないのと同じです。

(xyz) 2024/11/25(月) 20:40:22


 ・選択範囲の最初の行にカラースケールを使った「条件付き書式」をセットし
 ・(その最初の行を含む)条件付き書式を設定したい対象範囲を選択した状態で、
 ・下記のマクロと実行してもかまいません。

 これなら、カラースケールの色を自由に変更しても問題ありません。
 1行目の書式を、それ以下の行に、1行ずつ書式コピーします。

 Sub test2()
    Dim rng As Range
    Selection.Rows(1).Copy
    For Each rng In Selection.Rows
        rng.PasteSpecial Paste:=xlPasteFormats
    Next
 End Sub
(xyz) 2024/11/25(月) 22:16:02

>実際には2500〜3000行ほどありますので、コピペは現実的ではない感じです。

広範囲のセルを選択する時は「名前ボックス」を使用すると便利です。
数式バーの横にある名前ボックスに「A1:F3000」と入力してEnterを押す。
「A1:F3000」が範囲選択できます。
後は、(笑)2024/11/22(金) 21:17:07 さんの式を適用してください。

> 数式:=MAX($A1:$F1)=A1  赤
>もう一度、新規ルール
> 数式:=MIN($A1:$F1)=A1  緑

これでコピーやマクロを使用しなくても広範囲に一括して設定できます。

(IT) 2024/11/26(火) 08:52:44


 ITさん

 現時点の課題は ↓ となっています。

 >また、もう一点補足です。
 >「条件付き書式」>「カラースケール」>「左上から2番目」
 >の最大値(赤)> 中間値(黄)> 最小値(緑)
 >のようなグラデーションにしたいです。

(半平太) 2024/11/26(火) 09:04:03


(半平太)さん指摘ありがとうございます。
これも同様なことだと思って書きました。
グラデーションの色をどうするかでしたね。
(木の実)さん失礼しました。
参考程度にしておいてください。

(IT) 2024/11/26(火) 09:25:41


(xyz)さま(IT)さま(半平太)さま

お返事ありがとうございます!

>広範囲のセルを選択する時は「名前ボックス」を使用すると便利です。
>数式バーの横にある名前ボックスに「A1:F3000」と入力してEnterを押す。
>「A1:F3000」が範囲選択できます。
>後は、(笑)2024/11/22(金) 21:17:07 さんの式を適用してください。

>> 数式:=MAX($A1:$F1)=A1  赤
>>もう一度、新規ルール
>> 数式:=MIN($A1:$F1)=A1  緑

グラデーションは諦めて、上記の方法である程度成功できたのですが、
想定していた以上にA1〜F1まで全部空欄のセルがあり、緑だらけの行が
たくさん発生してしまい、とてもカラフルで見にくいリストとなってしまいました。

上記の補足で全部空欄のセルは色付けしないということは可能なのでしょうか?

よろしくお願いいたします!

(木の実) 2024/11/26(火) 18:08:43


 数式:=RANK(A1,$A1:$F1)=1  赤
数式:=RANK(A1,$A1:$F1,1)=1 緑
(んなっと) 2024/11/26(火) 18:32:22

 5色使うなら、こんな方法も。
=RANK(A1,$A1:$F1,1)=1     緑
=PERCENTRANK($A1:$F1,A1)>0  薄緑
=PERCENTRANK($A1:$F1,A1)>0.33 黄
=PERCENTRANK($A1:$F1,A1)>0.66 薄桃
=RANK(A1,$A1:$F1)=1      薄赤
 条件付き書式
→ルールの管理
→条件を満たす場合は停止 のチェックを全て入れてください。
(んなっと) 2024/11/26(火) 18:52:50

(んなっと)さま

ありがとうございます!!!
出来ました!!!

みなさま本当にありがとうございました!!!
(木の実) 2024/11/26(火) 19:35:19


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.