如何在 s-s-rS 报告中实现类似 Excel 的条件格式和“色标”

Posted

技术标签:

【中文标题】如何在 s-s-rS 报告中实现类似 Excel 的条件格式和“色标”【英文标题】:How to implement Excel-like Conditional formatting and “color scale” in s-s-rS report 【发布时间】:2020-05-11 01:31:16 【问题描述】:

我在 s-s-rS 中有一个如下表

 category 2018 percentage 2019 percentage
  c1      55    17%       7     11%      
  c2      0      0%       20     25%
  c3      6      2%       1      1%
  c4      26     8%       5     11%
  c5      4      1%       2      4%
  c6      10     3%       6      8%

我想在 s-s-rS 报告中实现带有色阶的条件格式等 excel,并希望为 2018 列和 2019 列中的前 3 个数字填充(背景颜色)。排序顺序应保持在类别中。 这意味着,我需要为 2018 年的 55,26 和 10 以及 2019 年的列中的 20,6 和 7 填充背景颜色。 我怎样才能做到这一点?

【问题讨论】:

【参考方案1】:

假设您的数据与 CTE 中的数据类似,您可以使用排名函数按年份分区并按实际值排序,以计算出每年的排名(就像您提到的那样.. 年度前 3 )。

然后根据排名数字..为其分配颜色,然后使用该颜色值作为背景颜色

示例代码:

  ;with mycte as (

  select
  'c1' as category ,55 as cat_value,'17%' as cat_percentage,2018 as cat_year
  union all
    select
  'c2',0,'0%',2018
  union all
    select
  'c3',6,'2%',2018
  union all
    select
  'c4',26,'8%',2018
  union all
    select
  'c5',4,'1%',2018
  union all
    select
  'c6',10,'3%',2018
  union all
    select
  'c1',7,'11%',2019
  union all
    select
  'c2',20,'25%',2019
  union all
    select
  'c3',1,'1%',2019
  union all
    select
  'c4',5,'11%',2019
  union all
    select
  'c5',2,'4%',2019
  union all
    select
  'c6',6,'8%',2019
 )
 ,rankings as (
 select 
 mycte.*

 ,RANK() over (partition by cat_year order by cat_value desc) as rank_value

 from mycte
 )

 Select *
 ,case when rank_value = 1 then 'Red'
 when rank_value = 2 then 'Blue'
 when rank_value = 3 then 'Green'
 else 'white' end as back_color
 from rankings

然后在您的报告中,选择具有您想要着色的值的单元格..将该单元格的背景颜色设置为:

=fields!back_color.value

【讨论】:

感谢 Haryy 的回复,但我无法合并年份列,因为它会更改报告格式。我们可以在不改变格式的情况下添加颜色列吗? 我在 CTE 中添加了额外的列,可以实现我需要的。非常感谢 。您的回复有帮助 如果它回答了你的问题..请接受我的回答

以上是关于如何在 s-s-rS 报告中实现类似 Excel 的条件格式和“色标”的主要内容,如果未能解决你的问题,请参考以下文章

如何阻止 excel 合并我的 s-s-rS 报告列?

如何在自定义 OLE 对象中实现类似 Excel 的 OLE 链接行为

如何将具有链接报告的 s-s-rS 报告导出到 Excel

报告服务 (s-s-rS):报告页脚在导出到 excel 时不起作用

如何在水晶报告中实现这一目标?

如何在Python中实现EXCEL的查找功能