如何根据最小值和最大值在 SSRS 报告中添加 Excel-like "color scale" 红-黄-绿条件格式

How to Add Excel-like "color scale" red-yellow-green conditional formatting in SSRS report based on min and max values

如何根据最小值和最大值在 SSRS 中创建热图? 现在我正在使用 SWITCH 函数来区分颜色。

    =
    SWITCH 
        (Fields!.Value = 0, "Coral",
            Fields!.Value >=1  and Fields!.Value <= 5 , "Yellow", 
            Fields!.Value >=6  and Fields!.Value <= 10 , "Gold", 
            Fields!.Value >= 11 and Fields!.Value <= 16,"#bdff30",
             Fields!.Value >= 17 and Fields!.Value <= 22,"#7fda24",
Fields!.Value >= 55 ,"#0ca102")

但是我如何才能告诉 SSRS,例如在 5 个不同的值之间,选择热图颜色,假设从红色到绿色的阴影并将这些颜色分配给单元格中的每个值? 应该是这样的:

对于第一个:使用开关:它采用第一个正确的值:因此您无需编写 2 个条件来测试一个值。只需将它们从最大到最小。 例如:

 =
SWITCH 
    (Fields!.Value >= 55 ,"#0ca102"
     Fields!.Value >= 17 ,"#7fda24"
     Fields!.Value >= 11,"#bdff30"
     Fields!.Value >= 6,"Gold"
     Fields!.Value >= 1,"Yellow"
     1=1,"Coral")

要获得可能的值的最大值:使用函数 "MAX"(对于 MIN 也是如此)。不要忘记在这里引用所有数据集(在组的情况下)。因此,当您对所有数据集使用最大值时,它就像那样:

=Max(Fields!myField.Value, "DataSetName")

然后,您可以用 min 和 max 进行运算,然后替换您的固定值。但是我帮不了你了,因为我数学真的不好。

我认为您不需要编写代码。 我在想更多这样的事情:

 =SWITCH 
(Fields!.Value >= Min(Fields!myField.Value, "DataSetName") + (5 *((Max(Fields!myField.Value, "DataSetName")-Min(Fields!myField.Value, "DataSetName"))/6)) ,"#0ca102"
 Fields!.Value >= Min(Fields!myField.Value, "DataSetName") + (4 *((Max(Fields!myField.Value, "DataSetName")-Min(Fields!myField.Value, "DataSetName"))/6)) ,"#7fda24"
 Fields!.Value >= Min(Fields!myField.Value, "DataSetName") + (3 *((Max(Fields!myField.Value, "DataSetName")-Min(Fields!myField.Value, "DataSetName"))/6)),"#bdff30"
 Fields!.Value >= Min(Fields!myField.Value, "DataSetName") + (2 *((Max(Fields!myField.Value, "DataSetName")-Min(Fields!myField.Value, "DataSetName"))/6)),"Gold"
 Fields!.Value >= Min(Fields!myField.Value, "DataSetName") + ((Max(Fields!myField.Value, "DataSetName")-Min(Fields!myField.Value, "DataSetName"))/6),"Yellow"
 1=1,"Coral")

以 5 到 60 的值为例,测试变为:

     =SWITCH 
(Fields!.Value >= 50.83 ,"#0ca102"
 Fields!.Value >= 41.67,"#7fda24"
 Fields!.Value >= 32.5,"#bdff30"
 Fields!.Value >= 23.33,"Gold"
 Fields!.Value >= 14.17,"Yellow"
 1=1,"Coral")

我数学真的不好。也许(肯定)有更好的公式...... 只是为了展示我想说的^^ 使用百分比推导范围。