首页 文章

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

提问于
浏览
0

MWE成立:

1)来自Power Bi视觉网站:https://app.powerbi.com/visuals/有一个自定义下载"Box and 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语句)的数据?

我希望它是基于公式的,我不能只是'视觉过滤'我不想要的项目 .

可能的答案:

我考虑过去源代码尝试和'throw in' if语句 . 但我去了开发人员git hub:https://github.com/liprec - 我找不到这个视觉的回购 .

2 回答

  • 1

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

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

    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

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

    -J.P

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

  • 3

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

    我接近这个的方式(并没有说这是最好或唯一的方式)

    Step 1

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

    Course
    ------
    English
    Math
    Physics
    

    Step 2

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

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

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

    Step 3

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

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

    Why so complex?

    您必须为Box&Whiskers视觉效果执行此操作,而您的“Distinct Count score”测量工作得非常好,就是在柱形图上,您显示的是单个值(平均分数) . 相比之下,Box&Whiskers图表正在绘制每个人的得分 .

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

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

    希望这可以帮助 .

相关问题