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

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

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

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

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

1、建立'比较日期表'

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

比较日期表 = '日期表'

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

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

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

3,建立度量值

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

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

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

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

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

4、展现结果

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

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

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

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

-精彩推荐- 如果你刚开始学习Power BI,可在微信公众号后台回复"PowerBI",获取《七天入门PowerBI》电子书,轻松上手。 成为PowerBI星球会员 ,获取更多学习资源 ↑ 扫码加入,与2k+ 学习者一起成长 实际业务中,比较成熟的企业会有相应的市场团队,根据以往的营业情况和当下的市场行情为当年制定合理的销售目标,但是也会有一些小企业没有相应的业务团队,那么这种情况下,需要如何制定销售目标么?2.如何将新表和原本模型关系中的日期表关联起来,是问题的核心点,可以使用TREATAS函数,也可以使用IN或者INTERSECT函数,方式不唯一;BOSS:是这样的,能不能搞个柱形 ,既展示近两年的 数据 ,又展示当年所有月份的 数据 ,要求年月在一个维度上?这是本期的 数据 ,仅有两列,一列日期,一列销售数量。白茶:BOSS您吩咐! 丝带 Power BI 中独有额可视化视觉对象,它的工具提示能展示指标当期与下期的 数据 以及排名。需求:使用丝带 展示"2022年点播订单表"不同月份不同点播套餐对应订单 数据 。需求:使用条形 展示"2022年点播订单表"不同套餐消费对应的总营收情况对比。需求:使用矩阵展示"2022年点播订单表"不同门店不同套餐消费类型对应的总营收情况。组合 可以在一张 表中对比指标不同维度的 数据 。需求:使用组合 展示"2022年点播订单表"每季度订单数和营收额。需求:使用柱状 展示"2022年点播订单表"每月订单数。 文/陆文捷物流供应链优化 分析 师, Power BI 爱好者,知乎:Beethovenist Power BI 内置了一系列日期智能函数,覆盖了计算同环比,上年同期,本期至今,期初期末,当期全局 数据 等高频需求。星主也发表过基于标准日期智能函数思路的非标准日历计算方法和 任意 期间上期的计算方法。 Power BI 非标准日历的计算思路 Power BI 如何计算 任意 期间的上一期?这类方法在处理连续日期段的汇总比较(今年... 能够在vuex中集中管理共享的 数据 ,便于开发和后期进行维护 能够高效的实现组件之间的 数据 共享,提高开发效率 存储在vuex中的 数据 是响应式的,当 数据 发生改变时,页面中的 数据 也会同步更新 什么样的 数据 适合存储到 Vuex 中 一般情况下,只有组件之间共享的 数据 ,才有必要存储到vuex中;对于组件中的私有 数据 ,依旧存储在组件自身的 data 中即可。 2.vuex的使用 答案就这一句话:s=datestr(info.FileModDate,'yyyymmddHHMMSS')基本思路:获取info函数,查看info所能获取的功能,然后直接调用该功能就可以了。1.对于 数据 处理初学者来说,如何批量对 数据 文件进行重命名呢?有人提出了以下算法:x = dir('D:\Program Files\MATLAB\R2010b\test\test\*.a');y = dir('D... power bi 日期表相对 In this article, I am going to describe how to use a date dimension table in Power BI . Using a date dimension table becomes extremely important while visualizing facts and figures ove... 会发现即便我们使用了MTD来计算去年同期,可是在月维度上仍然计算的是去年整月的 数据 ,仔细观看 数据 会发现只需要在计算去年同期时如果当期未发生,就不计算,即因为当期 数据 只到2022.7.24,所以在计算去年同期时只需要计算到2021.7.24即可。但是也会存在特殊情况,比如2020年2月是闰月有29天,2021年2月只有28天,所以在计算2021.2的去年同期时仍然会计算2020.2全月的 数据 ,即计算到2020.2.29,但这正是我们需要的。我们先来看一下常见的我们书写同比的方式。...