专栏名称: PowerBI星球
海量干货,帮你轻松上手 Power BI
目录
相关文章推荐
数据派THU  ·  【ICLR2025】SAMREFINER:驯 ... ·  8 小时前  
CDA数据分析师  ·  Deepseek来袭,数据分析师会失业吗? ·  昨天  
数据派THU  ·  牛津大学等提出P-sLSTM,释放LSTM在 ... ·  3 天前  
数据派THU  ·  【ICLR2025】LLMS能否识别您的偏好 ... ·  2 天前  
人工智能与大数据技术  ·  41岁DeepMind天才科学家去世:长期受 ... ·  3 天前  
51好读  ›  专栏  ›  PowerBI星球

Power BI数据分析:任意时间段对比

PowerBI星球  · 公众号  · 大数据  · 2024-08-27 12:04

主要观点总结

文章介绍了如何使用PowerBI进行任意时间段的比较数据分析,展示了如何建立数据模型来对比不同时间段的销售数据。

关键观点总结

关键观点1: 建立比较日期表的需求和重要性。

为了选择两个独立的时间段进行数据对比,需要建立两个互不影响的日期表,通过复制原日期表来建立比较日期表。

关键观点2: 建立非活动关系的必要性。

两个日期表不能直接建立物理关系,否则会相互筛选,无法生成两个独立的时间段。因此,需要建立非活动的虚线关系。

关键观点3: 建立度量值的步骤和逻辑。

基于数据模型,建立度量值来计算当期收入和比较期间的收入。利用USERELATIONSHIP函数激活非活动关系,并使用REMOVEFILTERS函数或ALL函数来筛选订单表。

关键观点4: 结果的展示方式。

通过原日期表与比较日期表中的日期生成切片器,将度量值放入矩阵或图表中,可以直观地展示某产品任意两个期间的收入对比。

关键观点5: 文章结尾的推荐和学习资源。

推荐读者收藏学习PowerBI星球的最新版内容合辑,并鼓励加入PowerBI学习社群获取更多学习资源。


正文

对于正常的有规律的时间段比较,像同比和环比,以前写的比较多,在PowerBI中也很容易计算。业务分析中还会遇到的一种场景是,选择任意区间的两组日期,展示其数据对比情况。


比如对两次促销活动的效果进行对比分析,两次促销活动期间,可以是任何时间段,没有对应关系,天数也可能不一样,那么如何快速的比较这两个时间段的数据呢?


以PowerBI星球常用的数据模型为例,已经有订单表以及对应的日期表、产品表,模型如下:



想要达到的效果是,通过两个日期切片器,来选择两个时间段,报告中分别展示这两个时间段的产品销售额。


下面来看看PowerBI如何实现这种分析需求。


1、建立'比较日期表'


因为需要两个互不影响的日期切片器,来选择不同的时间段,所以两个日期表是必须的,建立比较日期表很简单,直接复制原日期表就可以了,点击新建表,输入:

比较日期表 = '日期表'





2,'比较日期表'与原'日期表'建立非活动关系


如果两个日期表直接建立物理关系,依然会相互筛选,无法生成两个独立的时间段,所以这里的做法是 建立非活动的虚线关系 ,关系图如下:


关于非激活关系请参考: 认识Power BI中的非活动关系



3,建立度量值


有了上面的模型,就可以建立度量值了,当期收入很简单:


当期收入 = SUM( '订单表'[销售额] )


比较期间的收入,就需要利用USERELATIONSHIP函数来激活上面的非活动关系,度量值如下:



这个逻辑并不复杂,结合上一步建立的数据模型来理解:清除原日期表的筛选,并激活非活动关系,这样'比较日期表'的日期,就可以通过原日期表来筛选订单表,返回比较期间的收入。


该度量值用到的REMOVEFILTERS是今年新的DAX函数,相当于ALL函数,这里也可以直接用ALL函数来替代,不过它相对更容易理解,通过函数名称本身,就能猜测到它是什么功能。



4、展现结果


利用原日期表与比较日期表中的日期,生成两个切片器,将当期收入和比较期间收入度量值放入的矩阵中,就可以显示出某产品任意两个期间的收入对比:



当然也可以利用图表来更直观的展示:



这样就实现了比较不同期间数据的效果。


不同时间段的比较分析很有用,上面的做法不改变原模型关系,只是通过两个日期表的非活动关系来实现,简化了模型的处理,当然方法不止一种,大家遇到类似的需求时可以尝试。





PowerBI星球的最新版内容合辑,值得你收藏学习:
「PowerBI星球」内容合集






请到「今天看啥」查看全文