基于公式的Excel 2007/2010颜色比例条件格式

假设我有下面的表格结构(A1:C3)

ABC 1 H1 H2 H3 2 1 1 3 3 4 5 4 

如何使用以下条件应用条件格式:

  • 只有标题单元格(H1,H2,H3)被着色
  • 着色scheme是2或3色标
  • 用于计算颜色的值应该是A2 / A3,B2 / B3,C2 / C3(范围是0-1)

注意:我不是在寻找一个VBA解决scheme,因为我可以做我自己的,但如果你有一些疯狂的class轮请告诉:)
注:我不想应用很多规则, if x<0.3 redif 0.3<x<0.6 orange

有没有干净的解决scheme呢?
可以根据公式的值应用3色标度吗?

我认为你正在寻找一些漂亮的东西,但不幸的是它不存在。 我只是看到了两个选项。

您可以使用三种条件进行条件格式化,或者如果要使用默认的单元格颜色作为三种条件之一(例如公式Is =(A2 / A3)<0.3,公式Is =(A2 / A3) 0.6,或者任何你想要的阈值)。 您可以在Excel中的一个标题单元格上手动应用此格式,并将其复制到所有标题; 或通过VBA应用。

或者,您可以在VBA中对页眉进行着色,并在页面上放置一个调用代码以更新颜色的button。

 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 

听起来像第一个选项(条件格式)更适合,因为它会根据单元格值自动更新颜色。 不过,我不得不承认,为什么要寻找比这更“干净”的东西,因为这实际上是一个非常简单的解决scheme。 两个条件构成“很多规则”吗? 不是任何英语的延伸…

下面是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