先解释一下标题,何为刷新后保持最新日期数据,比如今天是11月2号,我们的页面就展示今天的数据;明天我们再刷新数据,页面就自动变成11月3号的数据了。这个需求,特别是自动刷新报表的时候,是很有必要的。
先来讲一个不怎么灵活但部分场合还是很有用的方法,主要是这个方法很简单,就是通过筛选器来控制单个视觉对象,比如我们需要自动更新展示单个视觉对象的昨日数据,只需要在刷选器页面把日期维度改成昨日就行了,后续就会自动更新为作为数据了,而且只对这一个视觉对象生效,演示一下↓
我们也可以通过这种思路把近7天和本月的数据做出来,这种一般作为BI报表首页使用,因为这只能看固定日期的数据,不能进行调整,数据如下↓
上面这种通过筛选器的方式有很多局限性,最大的问题是我们不能再自由的选择时间维度来看了,如果固定了昨日的维度,就一直是昨日的维度。我们想要的效果是,页面默认是显示昨日的数据,但是我们也可以自由选择其他日期的数据进行查看,下面来讲一下实现方式。
比如我们数据不是实时的,今天只能看到昨日的数据,我们就默认页面显示最新一天日期的数据。整体实现思路是这样的,首先在日期表建一个新的列,这一列用来和销售数据表对比,如果是销售数据表里面最新的日期就显示最新日期,低于这个日期就显示实际日期,否则就显示空值。这样的话这个最新日期就会随着销售数据日期的变化而变化,DAX语句和结果如下↓
DAY =
IF(
[日期]<MAXX(ALL('销售数据'),'销售数据'[下单日期]),
FORMAT([日期],'YYYY.MM.DD'),
IF(
[日期]=MAXX(ALL('销售数据'),'销售数据'[下单日期]),
'最新日期',
BLANK()
)
)
然后用这一列作为日期的筛选器,默认选择最新日期,数据刷新报表就会一直在最新日期了。然后也可以自由的选择其他日期的数据来进行查看,效果如下↓
同样的思路,我们可以默认显示最新月份、最新周的数据,以最新月份举例,DAX语句和结果如下↓
MONTH = IF( FORMAT([日期],'YYYYMM')<FORMAT(MAXX(ALL('销售数据'),'销售数据'[下单日期]),'YYYYMM'), FORMAT([日期],'YYYY-MM'), IF( FORMAT([日期],'YYYYMM')=FORMAT(MAXX(ALL('销售数据'),'销售数据'[下单日期]),'YYYYMM'), '最新月份', BLANK() ))
End
联系客服