重新定义时间轴

最近读了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制作并不难。

本文分享自微信公众号 - PowerBI大师(PowerBIMaster),作者:马世权

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-09-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 从Excel到PowerBI的5个理由

    关于为什么选择PowerBI,理由实在是太多了,之前的文章曾多次提到过,重复性工作的杀手、20年来Excel最好的发明、炫酷的可视化,空前丰富的数据源、强大的后...

    公众号PowerBI大师
  • 1.1 可视化概述

    学习PowerBI有三大独立的模块,Power Query获取数据、Power Pivot & DAX 数据建模、Power View 数据可视化,以可视化作为...

    公众号PowerBI大师
  • 信息设计图表

    网上可以搜到使用Excel的方法介绍,如果使用PowerBI怎样完成呢?今天小试了一下Inforgraphic Designer信息图表设计这个自定义视觉对象(...

    公众号PowerBI大师
  • patternplot包:用ggplot解决你对线性填充,不!所有填充的全部幻想。

    patternplot包,提供了丰度的图形可视化填充选项,但是目前我尽然没忽悠看到一篇推文来介绍和学习这个R包的。

    王诗翔呀
  • PCA主成分分析(下)

    哦……可惜数学实际上没那么多想象的浪漫,它的极致应如潜入深海之渊,耐得住寂寞,踏实严谨。

    用户1539362
  • 一图读懂腾讯Q2财报:助力经济复苏!总收入1148.83亿元

    点击上方“腾讯云TStack”,关注我们,获取最in云端资讯和海量技术干货~ 今天,腾讯发布了2020年第二季度业绩报告。 ? ? ? ?

    腾讯云TStack
  • [WCF的Binding模型]之三:信道监听器(Channel Listener)

    信道管理器是信道的创建者,一般来说信道栈的中每个信道对应着一个信道管理器。基于不同的消息处理的功能,将我们需要将相应的信道按照一定的顺序能组织起来构成一个信道栈...

    蒋金楠
  • 使用monit搭建一个监控系统

    马哥linux运维 | 最专业的linux培训机构 ---- 上周用monit搭建或者说定制了一个监控系统,来监控服务器发生事情。当然了主要是监控异常,因为我...

    小小科
  • 逆向分析智能窗帘频射协议

    近来我热衷于对家庭自动化设备的破解,然后将它们添加到我的Homekit集成包之中。这事情要从几个月前说起,当时我爸订购了大批量的RAEX 433MHz射频电动窗...

    FB客服
  • ES6之对象的扩展

    对象有一个描述对象,通过Object.getOwnPropertyDescriptor方法可以获取:

    wade

扫码关注云+社区

领取腾讯云代金券