表格實現同比環比計算


如下圖:如何在一個表格中實現同比環比計算

 
當然可以選擇通過SQL語法直接得到同比和環比數據進行計算,但是SQL的實現比較復雜,可能比較難理解。
本貼主要介紹通過Wyn Enterprise在表格中實現同比環比計算


重點:使用報表的豐富的表達式能力,這塊使用的是  LOOKUP  表達式
實現思路,創建兩個數據集,一個本期數據,另一個用來作為對比數據,根據同比環比概念獲取到同期和環期的數據,然后進行計算相應的同比增長率以及環比增長率


具體實現步驟:
1、創建報表,添加相關數據集(本期數據集和用來對比分析的數據集)。


數據集1:本期數據集,根據類別名稱、年、月來進行分組統計得到本期數據。(select sum(購買數量) as 數量,sum(訂單金額) as 金額,類別名稱,Year(訂購日期) as 年,Month(訂購日期) as 月 from 銷售明細 group by 類別名稱,Year(訂購日期),Month(訂購日期))

數據集2:對比數據集,與數據集1實現完全一致,只不過是用來與本期的數據進行對比,獲取到本期數據相應的同期和環期數據

2、添加表格,綁定本期數據,可以根據習慣通過表達式將年月合並為一列顯示。
在報表設計器頁面添加表格,綁定數據集1的數據,通過表達式將年月合並為一列(本期日期:=Fields!年.Value & "-" & Fields!月.Value)顯示。

進行預覽:本期的相關數據


注意:重點來了


3、利用LOOKUP表達式通過數據集2的對比數據計算出本期相對應的同期和環期數據。
本例子呢,計算的是兩年的本期金額,同期金額,環期金額以及同比增長率和環比增長率。
設計器中添加列,綁定同比日期,同期金額,環比日期,環期金額,同比增長率,環比增長率。
這些列的數據綁定選擇為表達式通過LOOKUP函數來計算得到


同比日期:與本期月份相同的上一年日期(=Fields!年.Value-1 & ”-“ & Fields!月.Value)


同期金額:利用LOOKUP計算同期金額(=Lookup(Fields!類別名稱.Value & "|" & Fields!年.Value-1 & "|" &Fields!月.Value ,Fields!類別名稱.Value & "|" & Fields!年.Value & "|" &Fields!月.Value, Fields!金額.Value, "數據集2"))


環比日期:本期為1月時,環期是上一年12月(=IIF(Fields!月.Value-1>=1,Fields!年.Value & "-" &Fields!月.Value-1,Fields!年.Value-1 & "-" & "12" ))


環期金額:同樣本期為1月時,環期是上一年的12月金額(=IIF(Fields!月.Value-1>=1,Lookup(Fields!類別名稱.Value & "|" & Fields!年.Value & "|" &Fields!月.Value-1 ,Fields!類別名稱.Value & "|" & Fields!年.Value & "|" &Fields!月.Value, Fields!金額.Value, "數據集2"),Lookup(Fields!類別名稱.Value & "|" & Fields!年.Value-1 & "|" & "12" ,Fields!類別名稱.Value & "|" & Fields!年.Value & "|" &Fields!月.Value, Fields!金額.Value, "數據集2") ))

同比增長率:通過(本期金額-同期金額)/同期金額,可以采用文本框的數據來進行計算 (=(ReportItems!文本框8.Value-ReportItems!文本框23.Value)/ReportItems!文本框23.Value)

環比增長率:通過(本期金額-環期金額)/環期金額,同樣采用文本框的數據來進行計算 (=(ReportItems!文本框8.Value-ReportItems!文本框17.Value)/ReportItems!文本框17.Value)

4、設計完成后進行預覽和保存


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM