s-s-rS 数据透视表上的条件单元格格式

Posted

技术标签:

【中文标题】s-s-rS 数据透视表上的条件单元格格式【英文标题】:Conditional cell formatting on s-s-rS pivot table 【发布时间】:2017-07-05 15:51:38 【问题描述】:

我在 SQL 中创建了一个数据透视表,左侧有报告名称,顶部有小时(00:00、00:01 等)。表中的值是过去三个月内每个报告在该小时内使用的次数。我已将表格导入 s-s-rS,并且正在尝试创建各种热图。我想根据每个单元格中的数字与行中单元格的值相比,将行中的单元格颜色更深或更浅(具有最高值的单元格将是最深的颜色)。 我尝试按照this 指南为单元格着色,但这里整行是一个字段,而我为每一列都有单独的字段。有没有办法做到这一点?

编辑:添加了表格设计的图片,并预览了着色不正确的地方

【问题讨论】:

整行不是您发布的链接中的一个字段。每行都有不同的底色,每个单元格的阴影会根据值变浅或变深。你应该能够将它应用到你的报告中。只需选择您想要影响的所有单元格,然后将背景颜色属性设置为相同的表达式。如果您希望每行都使用相同的颜色,则可能需要对其进行编辑,仅此而已。 我一直在尝试这个,但我无法让它正常工作。我尝试将所有字段的颜色表达式设置为 [=Code.ColorDWB(sum(Fields!ID00.Value),Max(Fields!ID00.Value, "DataSet2"),Min(Fields!Report_Name.Value, "DataSet2") , "#2322EE")],但这只是比较每一行的 00 字段中的值,并以此为基础为整行着色。我不确定如何更改函数以使其根据行中的所有其他单元格分别为每个单元格着色。 当我尝试使用我上次评论中的代码时,还添加了一张图片来显示表格设计和预览。在示例中,他拥有的两个字段是 [Vehicle] 和 [sum(Sales)],他将代码应用于 [sum(Sales)] 并使用 sum(Sales) 作为函数中的值。我尝试将代码应用于字段 [ID00] - [ID23] 但我不确定要插入函数的值,因为当我插入 [ID00] 时,它仅根据 00 字段中的值对行进行着色。 【参考方案1】:

我现在更好地理解了您的问题...该函数使用列的最小值和最大值来确定从最亮到最暗的范围,然后它可能会查看您的实际值是范围的多少。在您的每列数据来自不同单元格的情况下,除非您的列是固定的,否则这将是一件痛苦的事情,即使这样它也比需要的麻烦更多。

我会建议以下内容。

不要在 SQL 中透视您的数据,我们可以在 s-s-rS 中非常轻松地做到这一点,您的数据集也会更简单,例如

ReportName   Hour   UsageCount
ReportA       0     8
ReportA       1     4
ReportC       22    18

等等……

创建一个新报告并添加一个矩阵,其中 reportName 作为行组,hour 作为列组。数据值为 UsageCount。

报告设计就是这样,然后根据您的功能将单元格设置为背景,但这次您可以根据示例传入 Max(Fields!UsageCount.Value) 等。

我有点匆忙,所以如果不清楚,请告诉我,我会发布更清晰的解决方案。

【讨论】:

非常感谢,我有一半希望解决方案包括不在 SQL 中进行旋转。

以上是关于s-s-rS 数据透视表上的条件单元格格式的主要内容,如果未能解决你的问题,请参考以下文章

Excel‖数据透视表的高级应用

数据透视表上的t-sql辅助数据透视表

多对多数据透视表上的自定义范围

vbscript 过滤同一工作表上的所有数据透视表

SQL数据透视表上的文本值

BigQuery 关注更多领域