Power BI中最常用的切片器,利用DAX灵活显示
PowerBI的切片器我们都不陌生,作为可视化必备控件,以前我们介绍过不少关于切片器的文章,比如:
在实际使用切片器时,还有个问题是,切片器的显示项目默认是整个字段的所有项目,如何根据需要,不显示某些项呢?
比如在报告中放置一个日期切片器,由于我们对于日期表的要求是必须是全年完整的日期,所以切片器也显示的是所有的日期,包括未来的:
在筛选器中,可以进行筛选,比如设置相对日期,只显示过去的60天,
但这种设置只能相对于今天、或者某个固定的日期来筛选,如果要根据最新业务日期来动态筛选,比如现在的最新业务日期是2021年8月31号,之后都还没有发生业务,切片器能不能不显示8月31之后的日期呢?
利用DAX做个度量值就可以实现。
日期筛选器 = VAR lastdate_=MAXX(ALL('订单表'),'订单表'[订单日期]) RETURN IF(SELECTEDVALUE('日期表'[日期])<=lastdate_,"显示")
这个度量值先计算出最新的业务日期,然后判断日期是否早于最新日期,如果早于,则返回"显示"。
将这个度量值放入到日期切片器的筛选器中,并设置为等于"显示".
这样,该切片器就会只显示到最新业务日期:
如果想让切片器显示相对于最新业务日期的最近2个月的日期,度量值可以这样写:
日期筛选器 2 = VAR lastdate_=MAXX(ALL('订单表'),'订单表'[订单日期]) RETURN IF( SELECTEDVALUE('日期表'[日期]) IN DATESBETWEEN('日期表'[日期],EDATE(lastdate_,-2),lastdate_), "显示" )
对于这种情况,就可以设置为切片器不显示另外一个切片器的年度,写个度量值如下:
年度筛选器 = VAR slicer1=SELECTEDVALUE('日期表'[年度]) VAR slicer2=SELECTEDVALUE('比较日期表'[年度]) RETURN IF(slicer1<>slicer2,"显示")
以上就是今天分享的技巧,利用DAX和筛选器,可以灵活控制切片器的显示范围。
赞 (0)