最近发生的业务往往需要更及时的关注,所以报告中经常有展示最近N天数据的需求,之前曾介绍过利用DAX动态的显示最近N天:

Power BI动态显示最近N天的数据

 

如果在报告中只需要分析最近N天的数据,其实也可以不用这么麻烦,还可以利用PowerQuery的日期筛选器,更方便的实现。

 

数据导入到PowerQuery后,按数据中的日期字段来筛选数据。比如这个订单表,只需要点击订单日期列右侧的下拉箭头,即可找到日期筛选器:

 

自动展示最近N天,其实利用 Power Query 更简单_利用 Power Query 更简单

 

在日期筛选器中内置有各种粒度的筛选,比如昨天、今天、本周、上周、本月、本年等等,甚至也可以细化到按小时、分钟、秒来筛选行,还可以自定义筛选。

 

自动展示最近N天,其实利用 Power Query 更简单_利用 Power Query 更简单_02

 

如果仅需要最近5天的订单数据,只需要选择“在之前的”,然后在弹出的窗口中输入5天就可以了:

 

自动展示最近N天,其实利用 Power Query 更简单_利用 Power Query 更简单_03

 

然后上载,模型中就是最近5天的数据,直接做可视化展示即可。

 


 

上面用的之前5天不包括今天,如果想要包含今天的最近5天数据,可以这样设置:之前的4天以及今天。

 

自动展示最近N天,其实利用 Power Query 更简单_利用 Power Query 更简单_04

 


 

如果打算修改为最近15天的数据,点击“转换数据”进入PowerQuery编辑器,点击筛选行这个步骤旁边的小齿轮,可以再次进入筛选行的按钮,将5修改为15就可以了。

 

也可以直接修改这个步骤的M代码,将其中的5改为15:

 

自动展示最近N天,其实利用 Power Query 更简单_利用 Power Query 更简单_05

 

 

 

还可以利用PowerQuery的参数,将这个最近N天动态化,先在PowerQuery里建个参数:

 

自动展示最近N天,其实利用 Power Query 更简单_利用 Power Query 更简单_06

 

然后修改M代码为:

 

自动展示最近N天,其实利用 Power Query 更简单_利用 Power Query 更简单_07

 

就可以根据参数的值来动态的筛选最近N天了。

 

这种做法加载到模型中的数据永远就是最近N天的,会随着日期的变化而动态变化,更加简单轻巧,但简单也伴随着单调,它无法灵活的根据用户交互来展示某个日期之前的最近N天,也无法仅利用这张表做其他的分析,比如同期对比分析等。

 

具体用哪种方式,如何建立模型,依然是根据实际业务的需要来衡量。

 

当然如果你的历史数据非常多,而你只需要分析最近3年的,同样可以利用日期筛选器来动态的提取最近3年的数据,而无需将全部历史数据都加载到数据模型中,这样可以显著的提升模型性能。

关于PowerQuery日期筛选器,其他的粒度和筛选方式可以自己尝试一下。