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,就会导致数据丢失

你可能感兴趣的:(tableau)