重新定义时间轴

2019-08-07 10:57:46 浏览数 (1)

最近读了Reid Havens在PowerPivotPro上发表的一篇《产品上线时间后比较表现》的文章,不同产品上线的时间不同,通过自定义时间轴来把所有产品的上线时间调整到同一个起点作比较。

该分析方法使用的场景非常广泛。比如Tableau的展示作品《100家公司的传说》,针对100家增长速度最快的软件公司做的业绩比较,颇有震撼力的视觉效果展现了成功的技术公司都是以多快的速度成长。

再比如宜人贷(中国互联网金融海外上市第一股)8月份发布的财报最后一页,是一张逾期90天以上借款累计净坏账率。每条线代表不同季度的借款自第4个月后累计的坏账率走势。

不难发现,这几张图的共同特点是都属于折线图,只不过横轴(时间轴)是以产品、公司、交易的开始日期作为起点,按照一定的时间间隔延展。

怎样使用PowerBI来完成该类分析呢?我来使用咖啡案例数据做个讲解。

(顺便做个统一的备注,有很多人留言向我要案例数据,除特殊说明外,所有文章使用的案例都是我虚构的咖啡数据,下载链接在这篇文章中PowerBI大师咖啡数据下载 供广大的PowerBI学习者们使用、练习。)

首先,做个试验,如果是基于当前数据求累计销售量,可以利用时间智能函数来限定日期区间。度量值如下:

显然,以该度量值制作一张折线图,由于城市门店众多且开业时间不同,导致线条将非常眼花缭乱。

而我们想要的应该是下图的样式,每个线条都以自己的开业时间为起点。

所以,操作步骤是:

1. 我们先要知道每家城市门店的开业时间是哪一天?以该日作为门店的起点时间。在门店信息表中新建一列 [开业日期]=Firstdate('销售数据表'[订单日期])

2. 在销售数据表中添加一列[天数],计算每条订单日期与开业日期的天数差。

3. 使用Excel来定制一张自定义时间轴表,其中有不同天数所对应的月、季度、年。

4. 把自定义时间轴表中的天数与销售数据表的天数建立一对多关联。

自定义时间轴有点类似定制日历表的原理(如果您没有学习过定制日历表,可以阅读日历表的使用这篇文章)。

5. 写度量值

因为自定义的时间轴是非标准日期格式,所以智能时间函数是不适用的,这时候求累计数可以利用Calculate Filter All的句型,比如:

该公式使用if blank是把无销售量的月份变为空白,否则将出现折线为0的情况。如果你对Filter中的筛选条件[天数列]<=max([天数列])原理感到困惑,这个公式也可以利用Var来完成:

有了度量值,最后,把月数、门店、度量值拖入折线图中即可生成。而且可以把月数替换成季度数显示。

当然,还可以把季度数替换成天数:

这是一个高级图表,但利用PowerBI制作并不难。

0 人点赞