s-s-rS 分组总和问题

Posted

技术标签:

【中文标题】s-s-rS 分组总和问题【英文标题】:s-s-rS Grouped total sum issue 【发布时间】:2017-09-24 18:19:25 【问题描述】:

我正在创建一个 s-s-rS 报告,显示未来 12 个月的预计销售额,按 ProductID 分组。虽然详细信息单元格显示正确,但每个月的组总和显示的是 12 个月的所有销售额,而不仅仅是相关月份。

例如,这里是单个产品的所有表值:

ProductID EstimatedDate ProjSales
123A      Oct 10/2017   100
123A      Nov 15/2017   100
123A      Dec 01/2017   100
123A      Dec 31/2017   100

但是,这是该产品的报告当前显示的内容:

Product EstimatedDate   Oct 2017   Nov 2017   Dec 2017
123A    Oct 10/2017     100        0          0
        Nov 15/2017     0          100        0
        Dec 01/2017     0          0          100
        Dec 31/2017     0          0          100
        Total           400        400        400

如上所示,详细单元格的计算非常完美,因为如果年/月匹配,详细信息部分中的每条记录都会显示预计销售额,否则显示 0。不幸的是,“总计”金额的最后一行不正确,因为每月单元格显示所有月份的预计销售额总额,而不仅仅是相关月份。

这是我 2017 年 12 月的报告表达方式:

细节单元格:

=IIF(Year(Fields!EstimatedDate.Value) = 2017 AND Month(Fields!EstimatedDate.Value) = 12, Fields!ProjSales.Value, 0)

分组单元格

=IIF(Year(Fields!EstimatedDate.Value) = 2017 AND Month(Fields!EstimatedDate.Value) = 12, SUM(Fields!ProjSales.Value), 0)

知道如何更改分组表达式以检索每个月的预计销售额吗?

编辑:格式代码

【问题讨论】:

【参考方案1】:

使用矩阵。 添加列组并按年和月分组。 然后只需将 ProjSales 放在明细行组中,将 SUM(ProjSales) 放在组总计中。无需使用表达式来计算值。 列组标题必须是表达式才能从 EstimateDate 列中提取月份和年份。如果您以更传统的格式 YYYYMMDD 等存储日期,那么它会更容易,因为我不确定任何 DATE 函数会识别您在上面显示的格式。

如果您需要更详细的答案,请告诉我。我目前无能为力。

【讨论】:

谢谢,艾伦!我以前从未使用过列分组功能,但这似乎让我非常接近最终报告。只有一个问题:该报告目前仅显示 10 个月,因为接下来的两个月(2018 年 4 月、2018 年 6 月)没有预计销售额。即使没有基础数据,有没有办法强制它显示那些月份? 执行此操作的最简单方法是将NULL 值添加到您的数据集中以获取缺失月份。在大多数情况下,最好有一个包含日期(或至少几个月)的表格。然后,您可以从此表中离开联接,这样每个月都会出现在数据集中,但您将拥有 NULL,您没有数据可加入。

以上是关于s-s-rS 分组总和问题的主要内容,如果未能解决你的问题,请参考以下文章

s-s-rS 2008 - 分组集?

计算 s-s-rS 分组值

如何在变量分组值上按分组显示 s-s-rS 中的行数?

s-s-rS 2008 - 如何使用用户定义的分组隐藏行组列?

s-s-rS行分组如何将列作为标题[关闭]

s-s-rS 仅对图表上的一个值进行分组