如何基于它们与整数的接近程度来突出显示单元格?

时间:2017-07-13 00:15:26

标签: excel

我想突出显示更接近下一个整数的数字,一个更深的绿色和数字父亲远离下一个整数,一个更深的红色。 例如,1 =深绿色,1.1 =深红色,1.3 =浅红色,1.5 =白色,1.7 =浅绿色,1.9 =深绿色,2 =深绿色

1 个答案:

答案 0 :(得分:0)

您可以通过设置公式颜色缩放来完成此操作。

作为A1的例子:

GN: =IF(TRUNC($A$1)=$A$1,$A$1-1.1,TRUNC($A$1))
WH: =IF(TRUNC($A$1)=$A$1,$A$1-1,TRUNC($A$1)+0.5)
RD: =IF(TRUNC($A$1)=$A$1,$A$1,TRUNC($A$1)+1)

通过这种方式,它可以按您的需要工作。

只有两个问题:引用必须是绝对的,你不能使用它类似数组(范围A1:A10直接使用$ A $ 1:$ A $ 10)。

由于公式使用绝对引用,因此无法将其复制/粘贴到任何位置(它始终会查找原始单元格)。这样你需要为每个单元格手动输入它......但是excel得到了一个解决方案:VBA!

只需选择您想要规则的单元格并运行此代码:

Sub format_me()

  Dim x As Range, y As String

  For Each x In Selection.Cells
    y = x.Address

    x.FormatConditions.AddColorScale ColorScaleType:=3
    x.FormatConditions(x.FormatConditions.Count).SetFirstPriority

    With x.FormatConditions(1)
      With .ColorScaleCriteria(1)
        .Type = 4
        .Value = "=IF(TRUNC(" & y & ")=" & y & "," & y & "-1.1,TRUNC(" & y & "))"
        .FormatColor.Color = 7039480
        .FormatColor.TintAndShade = 0
      End With

      With .ColorScaleCriteria(2)
        .Type = 4
        .Value = "=IF(TRUNC(" & y & ")=" & y & "," & y & "-1,TRUNC(" & y & ")+0.5)"
        .FormatColor.ThemeColor = 1
        .FormatColor.TintAndShade = 0
      End With

      With .ColorScaleCriteria(3)
        .Type = 4
        .Value = "=IF(TRUNC(" & y & ")=" & y & "," & y & ",TRUNC(" & y & ")+1)"
        .FormatColor.Color = 8109667
        .FormatColor.TintAndShade = 0
      End With
    End With

  Next

End Sub

空单元格将没有颜色(仍然存在规则,只要数字在其中,您将获得颜色而不再运行代码)

或者,你也可以创建511个不同的规则(对于3种颜色的所有可能的阴影),但我现在懒于为该解决方案编写代码:P

如果您有任何疑问,请询问:)