Power BI可视化技巧:突出标识特定事件的数据

上一篇文章介绍了突出显示某一个期间的数据,是通过切片器来选择一个特定的期间,参考:PowerBI可视化技巧:突出显示特定期间数据

很多情况下,我们并不会随意查看某个时间段,而更关注某一个事件的影响,只需要突出显示该事件发生期间的数据即可。

假如其中有两次节日促销活动,把这两次活动的起止日期制作一个事件表,导入到PowerBI中:

那么如何突出显示这两个时间段内的数据呢?

其中一种方式,就是按照上篇文章的做法,将X轴恒线的开始和结束点分别用这两个度量值确定:

开始 = MAX('事件表'[开始日期])
结束 = MAX('事件表'[结束日期])

然后用事件作为切片器,就可以动态切换某个事件发生期间的数据:

其中右上角的指标计算的是该期间的总销售额,是靠这个度量值计算的:

本期间总销售额 =
CALCULATE(
[销售额],
TREATAS(
CALENDAR([开始],[结束]),
'日期表'[日期]
)
)

上面的效果是利用X轴恒线的功能实现的,虽然可以突出显示某一个事件,但无法同时突出显示两个期间。

下面介绍另一种更常见的做法,只需要先写两个度量值:

销售额 事件发生期间 = IF( COUNTROWS( FILTER( '事件表', '事件表'[开始日期]<=MAX('日期表'[日期])&& '事件表'[结束日期]>=MAX('日期表'[日期]) ) )>0, [销售额])
销售额 非事件发生期间 = IF( COUNTROWS( FILTER( '事件表', '事件表'[开始日期]<=MAX('日期表'[日期])&& '事件表'[结束日期]>=MAX('日期表'[日期]) ) )=0, [销售额])

第一个度量值判断当前上下文的日期是否在事件表的某一个事件中起止期间内,如果是,则返回销销售额;另一个度量值的逻辑则正好相反,如果不在任何一个事件的起止期间内,才返回销售额。

用日期表中的日期作为轴,这两个度量值作为值生成堆积柱形图,为两个值设置不同的颜色就可以了:

它可以同时标识出多个事件的数据。

右上角的合计销售额是这样写的,

销售额合计 事件 =
SUMX(
VALUES('日期表'[日期]),
[销售额 事件发生期间]
)
这个度量值迭代上下文的所有日期,先计算每一个日期的事件销售额,由于在非时间发生期间,事件销售额都等于0,所以最终的结果就是将所选事件发生期间的数据全部累加起来了。

第二种做法主要是利用DAX实现的,和辅助线的功能无关,适用性更强。


PowerBI商业数据分析
帮你从0到1,轻松上手PowerBI

(0)

相关推荐