5

次のテーブル構造があるとします (A1:C3)

     A   B   C
1    H1  H2  H3
2    1   1   3
3    4   5   4

次の条件で条件付き書式を適用するにはどうすればよいですか。

  • ヘッダー セル (H1、H2、H3) のみが色付けされます
  • 配色は2色または3色スケール
  • 色の計算に使用される値は、A2/A3、B2/B3、C2/C3 である必要があります (範囲は 0 ~ 1)。

注: VBA ソリューションを探しているわけではありません。自分で作成できますが、おかしなワンライナーがあれば教えてください :)注:など
多くのルールを適用したくありません。if x<0.3 redif 0.3<x<0.6 orange

これに対するクリーンな解決策はありますか?
数式の値に基づいて 3 色スケールを適用できますか?

4

2 に答える 2

1

残念ながら存在しない気の利いたものを探していると思います。2つのオプションが表示されます。

3 つの条件で条件付き書式を設定することも、デフォルトのセルの色を 3 つのうちの 1 つとして使用する場合は 2 つだけにすることもできます (例: Formula Is =(A2/A3)<0.3、Formula Is =(A2/A3)<) 0.6、またはしきい値を設定したいもの)。この書式設定を Excel の 1 つのヘッダー セルに手動で適用し、それをすべてのヘッダーにコピーできます。またはVBAを介して適用します。

または、VBA でヘッダーに色を付けて、コードを呼び出して色を更新するボタンをシートに配置することもできます。

With Range("A1")
    For i = 1 To 3
        colorscale = .Cells(2, i).Value / .Cells(3, i).Value
        .Cells(1, i).Interior.Color = _
            RGB(colorscale * 255, colorscale * 255, _
            colorscale * 255) ' for example. Or pick your colors otherwise.
    Next i
End With

セルの値に基づいて色が自動的に更新されるため、最初のオプション (条件付き書式) の方が適しているように思えます。ただし、これよりも「クリーン」なものを探している理由がよくわかりません。これは実際には非常に単純なソリューションだからです。2 つの条件は「多くのルール」を構成するか? 英語の範囲ではありません...

于 2011-04-21T07:19:51.073 に答える
0

これは、赤-黄-緑のグラデーションから色を取得するJean-FrançoisCorbettのコードを適応させたものです。

With Range("A1")
    For i = 1 To 3
        ColorScale = .Cells(2, i).Value / .Cells(3, i).Value
        If ColorScale < 0.5 Then
            red = 255
            green = ColorScale * 2 * 255
        Else
            red = (1 - ColorScale) * 2 * 255
            green = 255
        End If

        .Cells(1, i).Interior.Color = RGB(red, green, 0)
    Next i
End With
于 2011-04-22T21:38:43.753 に答える