前一段的文章介绍了如何动态显示最近N天(PowerBI动态显示最近N天的数据),如果想动态的显示最近N年、最近N月,依然可以参考上篇文章的做法。
更进一步的,但是如果想根据维度的动态选择,来显示最近N期,怎么做呢?
先看看效果,
粒度、参数均可以动态选择:
选择”月“和参数7,显示所选时间前7个月的数据
选择”季“和参数5,显示所选时间前5个季度的数据
并且根据不同的选择,动态呈现对应粒度的坐标轴。
这是怎么做的呢?整体思路与上一篇文章类似,但细节上需要更细致的设置,下面是实现步骤。
1,完善原始'日期表'
为了不同的粒度排序的需要,在日期表中为月份、季度和年度都添加一个编号,如下图所示。
2,建立'日期粒度表'
根据模型中的日期表,使用DAX建立一个新的日期粒度表,DAX如下:
看着代码很长,其实就是一段简单的代码复制4遍,分别生成年、季、月、日的粒度表,并利用UNION函数将他们合并在一起,这个粒度表是这样的,
它实际上是将需要动态展示的粒度,整合到一列中,每一个日期都包含完整的粒度类型。
同上一篇文章,再将这个日期粒度表复制一份,以便用于切片器,而不会产生交叉筛选。
3,建立模型
将'日期粒度表'与'订单表'建立关系,用于切片的日期粒度表不要建立关系,模型关系图如下。
因为日期粒度表中的每一个日期都是重复的,所有二者建立的关系是多对多的关系,这并不影响后面的使用。
4,建立度量值
为了动态的N期,依然需要先设置一个参数(创建「参数」轻松搞定动态分析),这里不再赘述,度量值编写如下:
5,生成图表
利用日期粒度表中的字段[粒度]和度量值[最近N期 收入]生成一个柱形图,并用 切片日期粒度表中的字段生成两个切片器,即可达到本文开头看到的效果,轻松呈现动态的最近N期的效果。
领取专属 10元无门槛券
私享最新 技术干货