2017-06-06 45 views
0

我有一個數據集,看起來像下面這樣:需要在上個月聚集了分組報告

| Location | Category |Item Name | Month | QTY | 
| -------- | -------- | -------- | -------- | --- | 
| NY | Hardware | Screw | Jan 2017 | 100 | 
| NY | Hardware | Screw | Feb 2017 | 50 | 
| NY | Hardware | Screw | Mar 2017 | 75 | 
| NY | Hardware | Bolt | Jan 2017 | 30 | 
| NY | Hardware | Bolt | Feb 2017 | 90 | 
| NY | Hardware | Bolt | Mar 2017 | 50 | 
| CA | Hardware | Screw | Jan 2017 | 100 | 
| CA | Hardware | Screw | Feb 2017 | 50 | 
| CA | Hardware | Screw | Mar 2017 | 75 | 
| CA | Hardware | Bolt | Jan 2017 | 30 | 
| CA | Hardware | Bolt | Feb 2017 | 90 | 
| CA | Hardware | Bolt | Mar 2017 | 50 | 


我的報告需要如下所示:

|  Hardware  | Screw | Bolt | 
|Current Month Total | 150 | 100 | 
|Yearly Total  | 450 | 340 | 

我需要一種方法來將當前月份的總數限制爲當前月份,但彙總年度總額的值。我已經嘗試過使用LAST,但是你不能。我已經嘗試了以下的當前月份總計。我的日期值是一個月的第一天,我的參數是一個月的最後一天,所以我需要一種方法來匹配2,這就是爲什麼有日期添加。 jist將嘗試匹配當前月份,這是日期列的參數:

= iif(DateAdd(dateinterval.Day,-1,DateAdd(dateinterval.Month,1,Fields!Sale_DATE.Value) )= Parameters!ReportingDate.Value,iif(isnothing(sum(Fields!Total.Value)),「」,sum(Fields!Total.Value)),sum(0))

但它只適用於返回數據集的查詢只返回當前月份。如果查詢返回一年中的所有月份,則顯示0。我需要一種方法來過濾單元格,以便正確彙總值

如果我將報告限制爲僅當前月份,我無法獲得年度總計,如果選擇所有月份,我無法獲得當前月份總數。

回答

0

你可以使用內建的分組函數來做到這一點,而不需要任何花哨的表情。按照月份添加行組。將行組過濾爲當前月份。按項目名稱添加一個列組。在行組外部和下部添加一行以獲取您的年度總計。表達式將全部簡單地成爲數量的總和。報告將負責彙總每個組範圍內的值。

0

其實,單獨建議使用分組是不行的。我已經在我的矩陣中使用組。問題是我需要在同一列內使用不同形式的分組,因此我需要將分組限制在不同的日期範圍內。我的問題是我的公式中的SUM位置錯誤。

爲每年總的表述應該是:

=Sum(IIF(Fields!ItemName.Value="Screw",Fields!QTY.Value,0)) 
=Sum(IIF(Fields!ItemName.Value="Bolt",Fields!QTY.Value,0)) 

然後,基於該數據集,如果當前月份是「2017年3月」我可以建立表達對本月合計爲

=Sum(IIF(Fields!ItemName.Value="Screw" and Fields!Month.Value="Mar 2017",Fields!QTY.Value,0))`` 
=Sum(IIF(Fields!ItemName.Value="Bolt" and Fields!Month.Value="Mar 2017",Fields!QTY.Value,0)) 

這些示例在此問題中使用我的示例數據集。因爲我無法硬編碼的日期,想用的參數,並做一個計算需要,這是我實際使用:

SUM(iif(DateAdd(dateinterval.Day,-1,DateAdd(dateinterval.Month,1,Fields!REL_DATE.Value))= Parameters!ReportingDate.Value, 
Fields!Total_OnTime.Value,0))/SUM(iif(DateAdd(dateinterval.Day,-1,DateAdd(dateinterval.Month,1,Fields!REL_DATE.Value))= Parameters!ReportingDate.Value, 
Fields!Total.Value,0)) 

希望這可以幫助其他人。