何羅魚國際貨運業務管理系統的大數據圖表裡會按月展示收入、支出以及利潤圖表供管理層決策參考,并有實時計算同比、環比增長或下降比例,同比的算法比較好理解,但環比算法還真要琢磨一下。
同比 Year on Year
同比的計算公式:
同比率=(本期數-同期數)÷|同期數|×100%
同比是以年為維度去做比較,比如今年的第 N 個月(本期數)與去年的第 N 個月(同期數)的比較。
例子:
比如說某貨代公司去年3月的利潤為100萬,本年3月的利潤為150萬,同比增長是怎麼算?
同比增長率=(150-100)÷|100|=50%
注意這個絕對值喲,這個很關鍵的,代碼裡沒有加的話,當利潤為負數時,結果就很有意思了。
環比 Month on Month環比的計算公式:
環比率=(本期數-上期數)÷|上期數|×100%
看環比的英文寫法,大概就可以理解環比是以月為維度做比較的。
但我們在開發的時候卻遇到了問題(也許我們想多了,但代碼總要寫清楚):如何定義上期數?我們讨論了兩種不同的方案:
先舉例子:
比如說某貨代公司本年的利潤如下:
月份
利潤
1月
100萬
2月
150萬
3月
80萬
4月
200萬
根據計算公式我們可以很方便地算出月度的環比:
2月環比(1月)增長了:(150-100)÷|100|=50%
同理3月環比(2月)下降了46.67%;4月環比(3月)增長了150.00%。
但在系統實際使用中,月份是可以多選的,當選中的月份為3月和4月的時候,合計利潤280萬,問題就出現了,上期數是多少?(280-?)÷|?|=?%
方案一:
上期數=100 150=250萬,就是3月 4月的環比(1月 2月)增長=(280-250)÷|250|=12%,這個方案理解起來相對簡單,相鄰周期作比較,但總感覺這和 Month on Month 不太相符,另外還會有一個問題,當你選擇了本年1-12月的時候,得出的環比值就和同比值相同了,網上搜一下,其實很多網友也有這個疑惑:年度的同比與環比怎麼算?
方案二:
上期數=150 80=230萬,就是3月 4月的環比(2月 3月)增長=(280-230)÷|230|=21.74%,這個理解起來就有點繞了,但好像是可以解釋 Month on Month 這種叫法,就是以月度為基數去計算增長。
declare @start_date date --開始時間 declare @end_date date --結束時間 dateadd(month,-1, @Start_date) –環比開始時間 dateadd(month,-1,@End_date) –環比結束時間
選擇哪一種方案呢?
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!