Power BI中最常用的切片器,利用DAX灵活显示

PowerBI的切片器我们都不陌生,作为可视化必备控件,以前我们介绍过不少关于切片器的文章,比如:

玩转PowerBI的切片器,看这篇就够了
利用PowerBI的这个控件,美化你的切片器
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_),
"显示"
)

实际运用中,还有一种情况,如果有两个切片器,需要一个切片器根据另外一个切片器来确定显示的范围,比如之前做过的任意时间段对比(参考:Power BI数据分析:任意时间段对比),年度对比其实是没有必要对比两个相同的年度的,但切片器默认都会显示:

对于这种情况,就可以设置为切片器不显示另外一个切片器的年度,写个度量值如下:

年度筛选器 =
VAR slicer1=SELECTEDVALUE('日期表'[年度])
VAR slicer2=SELECTEDVALUE('比较日期表'[年度])
RETURN IF(slicer1<>slicer2,"显示")
将这个度量值分别放入到两个年度切片器的筛选器中,并设置为等于“显示”,然后两个切片器的选择项目就永远不会相同了:

以上就是今天分享的技巧,利用DAX和筛选器,可以灵活控制切片器的显示范围。


PowerBI商业数据分析
帮你从0到1,轻松上手PowerBI

(0)

相关推荐