DAX分享22:一个slicer引发的一点思考

浏览: 244

​这个月压力都很大。前期一直都在干活,这周一直在上线。虽然都很简单,但,还是虚了。。。虚了~~


我都懒得说废话了。。。

创建数据源:

新建一个Excel,其中Quantity部分数据被去掉。

报表展示:

导入到Power BI报表中。在报表中展示一个slicer和一个table。结果如下图所示:

选择Quantity小于等于1,之后得到如下图所示结果。结果中包括空的数据。

不知道别人怎么测试自己的PowerBI报表,我最常用的是SQL Query。这两天也看到了用Python做测试的,很有意思。以后也可以试试用Python,应该挺好玩的。

在SQL Query里面,如果写了Quantity<3,得到如粉色框里面的结果。不包括NULL的值。所以在写SQL Query做验证的时候要注意一下。

尤其复杂的问题里面,这一点点小的疏忽,查起来也是很麻烦的。

延伸思考1:

slicer Quantity默认的选项是小于等于3。

如果在slicer里面输入了不同的值,要求报表中的数据不包括Blank;

如果没有在slicer里面输入值(即清掉slicer里面的filter时),要求包括Blank

比较麻烦的结果方法就是修改所有的度量值Measures。

聪明如我,当然也有一个比较简单的方法。

创建一个Calculated Column。定义如下:

Quantity filter = COALESCE(Sheet1[Quantity],9999999)

因为是小于等于的需求,所以我把空设置成一个很的大值。如上述需求,slicer的filter被清空,也是Quantity小于等于一个无穷大的含义。所以应该也是make sense的。

使用Quantity filter,得到如下结果:

延伸思考2:

如果想要的slicer就是带blank的Quantity,并且形态要求是dropdown的情况。如下图所示。

简单的实现Quantity小于等于3,那就手动选择1,2,3来满足Quantity<=3。但是,好像很麻烦,如果是Quantity<=20,要一个一个点到20吗?有点吓人啊~~~

那如果选择其中一个数字来表达小于等于的结果呢?那其实用延申思考1的方法最简单。不过如果真心喜欢dropdown的样式。也是有办法的。

不过首先,是不建议使用多选或者全选。没啥意义,还要求一个最大值。

但是如果打开单选功能,就不能实现什么都不选(全选)的功能。只能这样设置下,稍微给多选制造点难度吧。

得到如下结果。用小刷子可以不选(全选)

在没有任何选择的情况下,数据准备如下:

目标当选择不同的Quantity的时候,数据表2的Sales Amount有不同的变化。这个也不难。

Sales Amount Total = 
VAR _mx = MAXX(VALUES(Sheet1[Quantity]),MAX(Sheet1[Quantity]))
VAr _n2 = IF(AND(ISFILTERED(Sheet1[Quantity]),_mx<>BLANK()),CALCULATE(SUM(Sheet1[Sales Amount]),Sheet1[Quantity]<=_mx,not ISBLANK(Sheet1[Quantity])),SUM(Sheet1[Sales Amount]))
return _n2

因为要考虑不选(全选),所以用了MAX函数。刚刚好,如果不小心会用Ctrl来多选的,变量_mx也一并解决了。

要考虑选择了某个数,但是不是blank的情况,CALCULATE(SUM(Sheet1[Sales Amount]),Sheet1[Quantity]<=_mx,not ISBLANK(Sheet1[Quantity])) 加两个筛选也是顺顺利利的。其他的只要包含blank,都正常计算就可以了。

测试结果如下:Quantity选择了一个Blank,结果如下:

Quantity选择了一个2,结果如下:

Quantity=1的Sales Amount + Quantity=2的Sales Amount.正确!

如果不小心多选了,结果如下:

如果不选,结果如下:

如果全选,结果如下:

也简单吖。还有什么延伸想法呢。。。想不出来了啊~~

天气不错。谢谢关注!谢谢阅读~~

推荐 0
本文由 懒胖子 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册