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

我都懒得说废话了。。。
创建数据源:
新建一个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.正确!

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

如果不选,结果如下:

如果全选,结果如下:

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

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