Power BI技巧 | 如何让切片器只显示有数据的选项?

使用PowerBI做数据分析的基础,要先建立合适的数据模型,将数据表分为维度表和事实表,在做可视化时,坐标轴、切片器等上下文应该来源于维度表的字段。

但是很多人不喜欢用维度表,其中一个原因是,如果用维度表做切片器,包含的选项太齐全了,无论是否有数据,都会显示出来,如果选项很多,选择起来会很费劲。

不过这不应该成为不用维度表的理由,只有用维度表,才能更好、更快以及用更简单的DAX来实现分析需求;对于上述问题,即使用维度表,也是可以轻松解决的,只需要在筛选器中加个条件就可以了。

最常见的维度表当属日期表了,为了能够正常使用时间智能函数,日期表必须是整年不间断的日期,那么当使用日期表中的日期列做切片器时,就会显示全部的日期,包含没有业务发生的日期:

很多人就是因为这些日期很多都是无用的,所以选择了用事实表的日期,其实大可不必,通过一个简单的筛选条件就可以解决这个问题。

如果想让切片器只显示有数据的日期,可以写一个度量值,计算事实表中的行数,比如模型中订单表的行数:

订单数 = COUNTROWS( '订单表' )

将这个度量值放到该切片器的筛选器中,筛选这个度量值大于0的数据:

因为该度量值会计算每个日期所对应的订单数,用上述筛选器的结果,就是只有该日的订单数大于0时,才显示出来:

这样就解决了这个问题。

如果报告中还有个产品切片器,可以在这个切片器的筛选器中,也加入上述度量值的筛选条件,这个度量值就会计算每日每个产品所对应的订单数量,如果当日没有销售某个产品,则它在产品切片器中也不会显示出来:

这样就做到了,不仅日期切片器只显示有数据的日期,产品切片器也会动态的只显示有数据的产品,通过这样的设计,可以帮用户避免很多无效的点击交互。

对于日期切片器,如果不想显示未来期间的日期,除了以上筛选器的方式,还有个更灵活的方法,就是之前介绍的,在日期表添加计算列:

Power BI设计技巧:切片器的动态筛选


PowerBI商业数据分析

(0)

相关推荐