工具癖PowerBI专栏Power BI干货

Power BI-DAX作图技巧:突出显示最大最小区间

2019-08-02  本文已影响9人  PowerBI星球

之前的文章中介绍了如何突出显示最大值和最小值(PowerBI作图技巧:在走势图上标注最大值、最小值…),本文再介绍一种标记最大区间和最小区间的方法。

以销售额为例,在一段时期中,哪个30天的销售额最高?哪个30天的销售额最低呢?以面积图为例,效果如下,

制作原理和标记最高点和最低点相似,都是使用三个系列,只是求最高最低点相对比较简单,下面来看看如何找出最高区间和最低区间。

数据模型中有两个表,订单表和日期表,以30天销售额为例,先计算出每天向前推30天的销售额累计,度量值代码如下,

过去30天销售额 =

VAR N=30

VAR min_date=CALCULATE(MIN('日期表'[日期]),ALLSELECTED('日期表'[日期]))

VAR cur_date=IF(MAX('日期表'[日期])>=min_date+N,MAX('日期表'[日期]))

RETURN

CALCULATE(    [销售金额],FILTER(ALLSELECTED('日期表'),'日期表'[日期]>=cur_date-N&&'日期表'[日期]<=cur_date))

计算出30天累计销售以后,就可以找出哪个30天的销售额最高,然后只显示这个30天区间的销售额即可,度量值如下,

最大30天区间 =

VAR N=30

VAR max_sales=MAXX(ALLSELECTED('日期表'[日期]),[过去30天销售额])

VAR max_date=CALCULATE(MAX('日期表'[日期]),FILTER(ALLSELECTED('日期表'[日期]),[过去30天销售额]=max_sales))

RETURN CALCULATE([销售金额],FILTER('日期表','日期表'[日期]>max_date-N&&'日期表'[日期]<=max_date))

同理,把其中的MAXX改成MINX就是找出最低的30天累计销售额,并只显示该区间的数据,

最小30天区间 =

VAR N=30

VAR min_sales=MINX(ALLSELECTED('日期表'[日期]),[过去30天销售额])VAR max_date=CALCULATE(MAX('日期表'[日期]),FILTER(ALLSELECTED('日期表'[日期]),[过去30天销售额]=min_sales))

RETURN

CALCULATE([销售金额],FILTER('日期表','日期表'[日期]>max_date-N&&'日期表'[日期]<=max_date))

将[销售金额]、[最大30天区间]、[最小30天区间]放入面积图中,即可得到上面的可视化效果。

更进一步,我们建立一个参数,替换上面度量值中的30,即可找出任意N天的最大区间和最小区间,

WEB地址:  https://dwz.cn/bWz9Rhmv

是不是一眼就能看出什么期间最高,什么期间最低呢?

这就是PowerBI可视化的魅力,不要只把他当成一个简单的图表工具,结合DAX可以做出满足业务需要的各种效果。

并且上面这几个度量值使用的DAX函数只是个很普通的函数,你需要掌握的函数不在多,而在于融会贯通、灵活运用。

本文源文件已分享在知识星球,需要的请直接在知识星球中下载。


我是采悟,PowerBI星球作者,如果你刚开始接触Power BI,可在微信公众号后台回复"PowerBI",获取《七天入门PowerBI》电子书,轻松上手。

上一篇下一篇

猜你喜欢

热点阅读