Power BI DAX:多列多行条件并按 2 列分组

问题描述

伙计们,我正在尝试创建一个计算列/度量并遇到问题。

我的数据集如下所示:

城市 建筑物名称 测试日期 组件 测试结果 计算结果
- - - - - -
City1 Build1 1/3/2014 组件 A 通过
City1 Build1 1/11/2014 组件 1 失败 失败1
City1 Build1 1/11/2014 组件 2 通过 失败1
City1 Build1 1/11/2014 组件 3 通过 失败1
City1 Build1 1/06/2014 组件 A 失败 多重失败
City1 Build1 1/06/2014 组件 1 失败 多重失败
City1 Build1 1/06/2014 组件 2 通过 多重失败
City1 Build1 1/06/2014 组件 3 失败 多重失败

我正在查看组件和测试结果列,失败计数列表 - 按建筑物名称和日期分组;然后根据失败的组件数量生成计算结果。

如果单个组件测试结果 = 失败 - 那么计算结果 = Fail1 如果 CountA(components Test Result = fail) 2 则计算结果 = MultiFail 如果 Component1 AND ComponentA 测试结果 = 失败,则计算结果 = FailMail

到目前为止,我尝试了各种方法解决这个问题,领先一步和落后两步:

我创建了一个计算列来计数 # 无法用于计算结果并且正在努力生成计算结果。

测试_失败 = 计算(计数(表[测试结果]),过滤器(表,表[日期]=MAX(表[日期]) && 表[TestResult]="失败"))

我尝试解决问题的另一种方法

计算结果=
VAR 组件 = 表[组件] VAR Date1 = Table[测试日期] VAR Build = Table[建筑物名称] 返回 CALculaTE(disTINCTCOUNT('Table'[Component]),ALL(Table),FILTER('Table','表'[测试结果]="失败" && '表'[日期] = Date1 && '表'[建筑物名称]=Build)))

解决方法

你可以试试这个吗

Measure =
VAR _1 =
    CALCULATE (
        CALCULATE (
            DISTINCTCOUNT ( 'Table'[Component] ),FILTER ( 'Table','Table'[Test Result] = "Fail" )
        ),ALLEXCEPT ( 'Table','Table'[Building Name],'Table'[Test Date] )
    )
VAR _2 =
    SWITCH (
        TRUE (),ISBLANK ( _1 ) = TRUE (),"None",_1 = 1,"Fail1","MultiFail"
    )
RETURN
    _2

Result