Power bi box和whisker:使用if语句过滤

时间:2016-12-01 16:24:37

标签: powerbi dax

MWE设置:

1)来自Power Bi视觉网站:https://app.powerbi.com/visuals/有一个自定义下载" Box和Whisker(Jan Pieter)"

2)下载样本。

3)使用dax公式创建新度量:

Distinct count score = if(distinctCOUNT(Courses[Score]) > 4, average(Courses[Score]), Blank())

4)添加一个Stacked柱形图,其中以Course为轴,新创建的“Distinct count score'作为价值并获得以下内容:

enter image description here

5)将此图表与Power BI提供的Box和Whisker进行比较:

enter image description here

这是我的问题。我只想在Box和Whisker中显示不同得分分数大于4的值 - 所以我只想要显示物理(如上面的堆积柱形图)。

因此,如果我使用Dax公式尝试使用堆积条形图的解决方案。我得到以下内容 - 没有任何显示: enter image description here

这就是我想要发生的事情:

enter image description here

问题:

在Power BI运行中是否存在一种方法,并且Box和Whisker图表中的不同计数语句仅显示带有>的数据4个不同的值(或任何if语句)?

我希望它是基于公式的,我不能只是视觉过滤器'我不想要的物品。

可能的答案:

我考虑过去源代码尝试“扔进去”'一个if语句。但是我去了开发人员git hub:https://github.com/liprec - 我无法找到这个视觉的回购。

2 个答案:

答案 0 :(得分:3)

基本上这是由于盒子和须状图表的工作方式。视觉效果需要一个数据集来计算值(平均值,中位数等),并使用这些值来显示框和晶须。

因此,在您的情况下,您需要创建一个与分数处于同一级别的度量(因为需要这些值)并且仅可用。请参阅屏幕截图,了解所需措施的直观说明。

enter image description here

我使用以下DAX指标创建了该指标:

Filter Score = IF(CALCULATE(DISTINCTCOUNT(Courses[Score]), ALLEXCEPT(Courses, Courses[Course]))>4, MIN(Courses[Score]), BLANK())

IF语句的布尔表达式通过CALCULATE表达式和ALLEXCEPT过滤器选项计算每个课程的不同分数,以忽略除课程值之外的所有内容。 TRUE部分会返回需要汇总的分数,因此MINFALSE部分会返回BLANK()值,因此可以忽略。

当您添加新度量并创建BW图表时,它将仅显示“物理”课程结果。

enter image description here

如果您需要更多帮助,请在此处或通过电子邮件告知我们。

-jP

BTW:我刚刚更新了我的PowerBI可视化GitHub存储库(https://github.com/liprec/PowerBI-custom-visuals),并在oldAPI文件夹中添加了我的盒子和胡须图表以及我的层次切片器。

答案 1 :(得分:1)

据我所知,问题的症结在于您希望将视觉效果过滤到具有特定数量的不同值的课程。您想要使用哪种视觉效果几乎无关紧要(尽管有一个示例Power BI工作簿可供使用)。

我接近这个的方式(而不是说这是最好或唯一的方式)

第1步

创建一个新的课程维度表,每个唯一课程都有一行。在示例工作簿中,您可以单击“输入数据”并手动键入数据。

Course
------
English
Math
Physics

第2步

接下来,在新表中创建一个计算列,并计算每个课程的非重复计数。这不是衡量标准 - 它是表格中的一列,它使用您问题中的“区别计数”计算。

Distinct Count = CALCULATE(DISTINCTCOUNT(Courses[Score]), SUMMARIZE('Courses','Courses'[Course])) 

SUMMARIZE就像GROUP BY一样工作。实质上,每个课程创建一行,并有不同的分数。

第3步

将此新属性用作视觉效果的过滤器。然后,您可以根据需要动态更改不同值的数量(4,3,2)。

我知道这不如在视觉过滤器字段中键入公式那么好,但在实践中它仍然是公式驱动的。公式只是在一个基础表上。

为何如此复杂?

你必须为Box& Whiskers视觉,而你的“Distinct Count score”测量工作得很好,就是在柱形图上,你显示的是单个值(平均得分)。盒子&相比之下,Whiskers图表正在绘制每个人的得分。

实际上,如果您从柱形图的轴中删除了“课程”,则该值会随着您在过滤后的课程中添加而更改。 (原因是,如果您的轴上没有课程,您的公式将计算所有课程的不同计数,即7)。同样,如果您要将柱形图过滤到特定会话,则柱形图将变为空白(因为在任何给定的会话中,任何课程都不会有超过4个不同的值)。

我上面描述的技术解决了这些问题,因为它过滤了Math& Sons的课程。从一开始英语。如果您已过滤到单个会话,或者根本没有过滤,则无关紧要。英语&只要数学的独特计数低于您指定的值,数学就会被排除在外。

希望这有帮助。