Excel 2007:各行に黄色の低い値、赤色の高い値を表示する条件付き書式設定


14

約300行のスプレッドシートがあります。各行には約15列あり、各セルには数値が含まれています。各行は製品に対応しています。

製品ごとにExcelを取得して、最大の数値が赤で最小の数値が黄色のセルをハイライトし、その間に数値の勾配を付けたいと思います。これは、行(具体的には、データを含む行の15個のセル)を選択し、[条件付き書式設定]> [カラースケール]> [赤黄色のカラースケール]をクリックした場合に発生します。

ただし、300行あるため、各行を個別に選択して条件付き書式を設定するには時間がかかりすぎます。一方、範囲全体を選択して条件付き書式設定を適用すると、Excelは範囲全体に基づいて色を計算しますが、実際には行ごとに計算する必要があります。たとえば、次のサンプルデータを使用します。

1 2 3
4 5 6
7 8 9

黄色にY、オレンジにO、赤にRを使用した場合の出力は次のとおりです。

Y O R
Y O R
Y O R

ただし、範囲全体を選択して条件付き書式を適用すると、次の結果が得られます。

Y Y Y
O O O
R R R

一度に1行ずつ実行せずにこれを達成する方法はありますか?


@wizlog:そうです。行の最高値は赤、最低値は黄、その他の値は中間の値(最高値に近いほど赤)でなければなりません。
マイケルパヴィー

Iこの質問のように私は答えを見つけることができるかどうか...私は再び助けることができる前に、それはprobally数時間になるでしょう...参照してくださいよ、私は他のスーパーユーザのメンバーが..を通じて時間にあなたに答えを見つけることを願って
wizlog

私もこの質問が好きです。しかし、マクロを使用する以外にこれにアプローチする他の方法はありません。誰かが私が間違っていることを証明することを願っています。
エルサ

回答:


15

選択した各行の条件付き書式を作成するマクロを次に示します。これを行うには、最初の行の形式を選択範囲の各行にコピーします(完全にではなく、1つずつ)。B1:P1をデータテーブルの最初の行への参照に置き換えます。

Sub NewCF()
    Range("B1:P1").Copy
    For Each r In Selection.Rows
        r.PasteSpecial (xlPasteFormats)
    Next r
    Application.CutCopyMode = False
End Sub

使用するには、データセット内のフォーマットされていない行(私の場合はB2:P300)を強調表示して、マクロを実行します。以下の例では、最初の2行の最大数がそれぞれ515であることに注意してください。両方のセルは暗赤色です。

しかし、これよりも速い解決策があると確信しています。

ここに画像の説明を入力してください


1
おかげで、これは見事に機能しました。また、不明な場合に助けを求めることの価値の良い例でもあります...マクロを使用するというアイデアに気が進まなかったのは、条件付き書式をゼロから設定する方法を学ぶ必要があると思っていたからです。既存の書式設定をコピーするためだけにマクロを取得するのは、はるかに巧妙です:)
Michael Pavey

@MichaelPaveyうれしいです!そして、スーパーユーザーへようこそ!:)
エルサ

1
+ 1.誰の興味を持って、私は私のブログにこの概念をさらに取った場合:yoursumbuddy.com/conditional-formatting-per-row-color-scales
ダグGlancy

この種の機能がExcelの機能として組み込まれていないのはばかげています。この方法で行を比較することは珍しいですか?
アレックス

5

これを実現する最も簡単な方法は、コピー/貼り付けを段階的に行うことです。最初に、1行を希望どおりにフォーマットします。次に、書式設定をコピーして、2行目のみに貼り付けます。次に、行1と2の両方をコピーし、フォーマットを行3と4に貼り付けます。すすぎと繰り返し、コピー4、過去4、コピー8、貼り付け8、コピー16、貼り付け16。数回貼り付けて、最大64または128にします。これらをコピーして書式を貼り付けると、指数関数的に以前よりも多くの領域がカバーされます。

それはエレガントではなく、私の経験では、条件付きで食べる行をフォーマットするために必要なリソースは約2500行を最大限に使い始めます...しかし、それは仕事をやり遂げます。

私はただ、各行ごとに個別の条件付きフォーマットを作成せず、リソースを占有するロジックがあればいいのにと思います...


OPは「しかし、300行あるため、各行を個別に選択して条件付き書式を設定するのに時間がかかりすぎる」と言ったと思います質問で
プラザンナ

@ポールトロン、ありがとう!これに追加するには、Ctrl / Cmd + Shift + Up / rightを使用して、以前の行と列をすべて簡単に選択できるため、以前の行を数える必要はありません。次に、貼り付けの準備ができたら、既に書式設定された行の下の最初のセルにカーソルを置き、特殊貼り付け形式のみをコピーします。Ctrl / Cmd + Shift + Vは、最後に使用したい特殊なペーストも記憶するため、プロセス全体がかなり速く進みます。それぞれ600行の2つのスプレッドシートで使用しました。
オスカーオーステール

〜100行のテーブルでこれを行ったところ、きれいに機能しました。Format Painterを7回繰り返しただけです。
mskfisher

0

VBAを介してこれを行う方法のこの例と他の例を見つけたので、考えさせられ、スクリプトを知らずにコピーすることなく同じことを比較的迅速かつ無痛に行う方法を見つけました。

必要な条件付き書式設定を任意の行に適用し、行全体を強調表示します。次に、境界線に沿った任意の場所を右クリックし(マウスは移動アイコンにする必要があります)、次の行まで下にドラッグします。表示されるコンテキストメニューで、[ここにのみフォーマットとしてコピー]を選択します。ここで、両方の行に条件付き書式を個別に適用する必要があります。次に、一度に2行以上を選択してコピーできるようになることを除いて、これを再帰的に繰り返します。

上記のコードのような1回限りの処理ではありませんが、一度に1行ずつ実行するよりも指数関数的に高速です。お役に立てれば。


0

条件の書式設定を1つの行に適用することもできます。行を再度強調表示し、「Format Painter」をダブルクリックしてロックします。下矢印キーを使用して、条件を他の行に適用します。

私の会社では通常、Excelでマクロをブロックしているので、これでうまくいきます。それがあなたにも役立つことを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.