【轉載】Tableau 如何計算增長(去年及上個月或之前月份的)值
好久沒有更新了,今天主要分享一下在tableau中如何計算growth,也就是當前年跟去年或者上一個月份的差值。
當然每個人採取的方式不同,個人習慣在view中將PY及PM的值計算好,直接在tableau中去使用,首先我們說說在tableau中如何計算grw:
1.在tableau計算:
當然在tableau中根據不同的展示方式我們採用不同的方法,可以用表計算,tableau中的函式公式獲取增長的值, 以下示例計算計算sales 增長,
如果我以這樣的Trend去顯示每年的銷售,我們直接採用表計算,非常方便,具體如下:
選擇Quick table caculation--> Diffrence. 這樣就自動計算每年的增長,或者增長率,同理如果我們也可以看每個月的增長。
這種方式當然簡單,但是有時候需求往往不止這樣,如果要顯示去年的sales值或者上個月的Sales怎麼辦?並且不需要這樣顯示?
例如:只要比較兩年的sales及增長,當然在tableau中用函式計算公式可以獲取去年的值,但是比較麻煩,我個人一般採用在view中提前計算好PY的值。
2.view中計算PY:
SELECT
YEARMONTH
, BRAND
, Product
, Provice,
, City,
, Type_name
, SUM(Sales) AS Sales
, SUM(Sales_py) AS Sales_py
FROM(
YEARMONTH
, BRAND
, Product
, Provice,
, City,
, Type_name
, Sales
, NULL AS Sales_py
FROM Sales_tab
UNION ALL
add_months(YEARMONTH,12) as YEARMONTH
, BRAND
, Product
, Provice,
, City,
, Type_name
, NULL AS Sales
, Sales AS Sales_py
FROM Sales_tab) A
GROUP BY YEARMONTH
, BRAND
, Product
, Provice,
, City,
, Type_name
當然可能有人好奇為什麼要用union, join 不就可以了,其實,饒了一大圈我就想說這個問題,不能用join,因為會丟失資料,例如2016年中的某一個Product 不一定在2015年的銷售中,這樣導致資料沒有關聯上,資料丟失。如果力度只是到年,當然沒問題的,但是如果更細力度的資料j'oin,就會導致資料丟失