假设我有以下表结构(A1:C3)
A B C
1 H1 H2 H3
2 1 1 3
3 4 5 4
如何应用具有以下条件的条件格式:
注意:我不是在寻找VBA解决方案,因为我可以自己做,但如果你有一些疯狂的1班轮,请告诉:)
注意:我不想应用很多规则,例如if x<0.3 red
,if 0.3<x<0.6 orange
等。
这有什么清洁解决方案吗? 可以根据公式的值应用3色标度吗?
答案 0 :(得分:1)
我认为你正在寻找一些不幸的东西。我只看到两个选项。
您可以使用三个条件进行条件格式化,或者如果要将默认单元格颜色用作三个条件之一,则可以进行条件格式化(例如公式Is =(A2 / A3)<0.3,公式Is =(A2 /A3)<0.6,或任何你想要的阈值值)。您可以在Excel中的一个标题单元格上手动应用此fomatting,并将其复制到所有标题;或通过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
听起来像第一个选项(条件格式)更适合,因为它会根据单元格值自动更新颜色。不过我不得不承认,我不太清楚你为什么要寻找比这更“干净”的东西,因为它实际上是一个非常简单的解决方案。两个条件构成“很多规则”吗?不是任何一种英语语言......
答案 1 :(得分: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