Tableau 如何计算增长(去年及上个月或之前月份的)值

浏览: 6210

在天善开通了博客,正好今天要记录一点关于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,就会导致数据丢失。

推荐 3
本文由 羽卒TT 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册