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 分组总和问题的主要内容,如果未能解决你的问题,请参考以下文章