Power BI DAX:多列和多行条件并按 2 列分组
Power BI DAX : multi-column and multi-row condition and group by 2 columns
伙计们,我正在尝试创建计算 column/measures 并遇到问题。
我的数据集如下所示:
城市
建筑物名称
测试日期
组件
测试结果
计算结果
-
-
-
-
-
-
城市1
Build1
2014 年 1 月 3 日
组件 A
通过
None
城市1
Build1
2014 年 1 月 11 日
组件 1
失败
失败1
城市1
Build1
2014 年 1 月 11 日
组件 2
通过
失败1
城市1
Build1
2014 年 1 月 11 日
组件 3
通过
失败1
城市1
Build1
2014 年 1 月 6 日
组件 A
失败
多次失败
城市1
Build1
2014 年 1 月 6 日
组件 1
失败
多次失败
城市1
Build1
2014 年 1 月 6 日
组件 2
通过
多次失败
城市1
Build1
2014 年 1 月 6 日
组件 3
失败
多次失败
我正在查看组件和测试结果列,失败计数列表 - 按建筑物名称和日期分组;然后根据失败的组件数量生成计算结果。
If Single component Test Result = fail - then Calculated Result = Fail1
If CountA(components Test Result = fail) <=2 then Calculated Result = Fail2
If CountA(components Test Result = fail) > 2 then Calculated Result = MultiFail
If Component1 AND ComponentA Test Result = Fail then Calculated Result = FailMail
到目前为止,我尝试了各种方法来解决这个问题,先一步后两步:
我创建了一个计算列来计算 # 无法用于计算结果并且正在努力生成计算结果。
Tests_Failed =
CALCULATE(COUNT(Table[TestResult]),FILTER(Table,Table[date]=MAX(Table[date])
&& Table[TestResult]="Fail"))
我尝试解决问题的另一种方法
Calculated Result =
VAR Component = Table[Component]
VAR Date1 = Table[Test date]
VAR Build = Table[Building Name]
RETURN
CALCULATE(DISTINCTCOUNT('Table'[Component]), ALL(Table), FILTER('Table',
'Table'[Test Result]="Fail" && 'Table'[date] = Date1 &&
'Table'[Building Name]=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
伙计们,我正在尝试创建计算 column/measures 并遇到问题。
我的数据集如下所示:
城市 | 建筑物名称 | 测试日期 | 组件 | 测试结果 | 计算结果 |
---|---|---|---|---|---|
- | - | - | - | - | - |
城市1 | Build1 | 2014 年 1 月 3 日 | 组件 A | 通过 | None |
城市1 | Build1 | 2014 年 1 月 11 日 | 组件 1 | 失败 | 失败1 |
城市1 | Build1 | 2014 年 1 月 11 日 | 组件 2 | 通过 | 失败1 |
城市1 | Build1 | 2014 年 1 月 11 日 | 组件 3 | 通过 | 失败1 |
城市1 | Build1 | 2014 年 1 月 6 日 | 组件 A | 失败 | 多次失败 |
城市1 | Build1 | 2014 年 1 月 6 日 | 组件 1 | 失败 | 多次失败 |
城市1 | Build1 | 2014 年 1 月 6 日 | 组件 2 | 通过 | 多次失败 |
城市1 | Build1 | 2014 年 1 月 6 日 | 组件 3 | 失败 | 多次失败 |
我正在查看组件和测试结果列,失败计数列表 - 按建筑物名称和日期分组;然后根据失败的组件数量生成计算结果。
If Single component Test Result = fail - then Calculated Result = Fail1 If CountA(components Test Result = fail) <=2 then Calculated Result = Fail2 If CountA(components Test Result = fail) > 2 then Calculated Result = MultiFail If Component1 AND ComponentA Test Result = Fail then Calculated Result = FailMail
到目前为止,我尝试了各种方法来解决这个问题,先一步后两步:
我创建了一个计算列来计算 # 无法用于计算结果并且正在努力生成计算结果。
Tests_Failed = CALCULATE(COUNT(Table[TestResult]),FILTER(Table,Table[date]=MAX(Table[date]) && Table[TestResult]="Fail"))
我尝试解决问题的另一种方法
Calculated Result =
VAR Component = Table[Component] VAR Date1 = Table[Test date] VAR Build = Table[Building Name] RETURN CALCULATE(DISTINCTCOUNT('Table'[Component]), ALL(Table), FILTER('Table', 'Table'[Test Result]="Fail" && 'Table'[date] = Date1 && 'Table'[Building Name]=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