1. 程式人生 > >【轉載】Tableau 如何計算增長(去年及上個月或之前月份的)值

【轉載】Tableau 如何計算增長(去年及上個月或之前月份的)值

好久沒有更新了,今天主要分享一下在tableau中如何計算growth,也就是當前年跟去年或者上一個月份的差值。

當然每個人採取的方式不同,個人習慣在view中將PY及PM的值計算好,直接在tableau中去使用,首先我們說說在tableau中如何計算grw:

1.在tableau計算:

    當然在tableau中根據不同的展示方式我們採用不同的方法,可以用表計算,tableau中的函式公式獲取增長的值, 以下示例計算計算sales 增長,

Clipboard Image.png

如果我以這樣的Trend去顯示每年的銷售,我們直接採用表計算,非常方便,具體如下:

選擇Quick table caculation--> Diffrence. 這樣就自動計算每年的增長,或者增長率,同理如果我們也可以看每個月的增長。

Clipboard Image.png

這種方式當然簡單,但是有時候需求往往不止這樣,如果要顯示去年的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,就會導致資料丟失