我有一个从 MS SQL 导入的表。打开 PBIX 文件时,表数据会刷新。极简数据如下所示:
测试数据表:
工单 | 任务ID | 测试类型 | 通过失败 | 重新测试 |
---|---|---|---|---|
123 | 1 | GRF | 通过 | 错误 |
123 | 1 | HNC | 通过 | 错误 |
123 | 1 | 高频率 | 失败 | 错误 |
123 | 2 | GRF | 通过 | 正确 |
123 | 2 | HNC | 通过 | 正确 |
123 | 2 | 高频率 | 通过 | 正确 |
我需要计算的是 1stPassYield 和 TotalPassYield。
那么,我该如何完成所有这些操作,然后在仪表板上创建一张卡片来显示每个百分比? 最终,我希望能够根据工作订单对数据进行切片,并根据数据更新卡百分比。 我的数据有很多 WorkOrder,每个 WorkOrder 应该有自己的 1stPassYield 和 TotalPassYield 值(或作为一个整体)
关于如何实现这一目标的想法?我尝试创建一个使用 PowerQuery 按照我需要的方式转换数据的方法,但我就是无法让它按应有的方式运行。我缺少什么?任何指示将不胜感激。
1stPassYield 计算如下:
工单 | 任务ID | 通过失败 |
---|---|---|
123 | 1 | 失败 |
123 | 2 | 通过 |
TotalPassYield 假设只要整个 WorkOrder/TaskID 分组为“Pass”,那么就是 100% 通过。因此,上面显示的模拟数据应该为我需要的措施提供以下值:
我想你可以将上面的分组表按 WorkOrder 进行分组,取 PassFail 的最大值(应该是 Pass)。
所以问题是,如何完成这一壮举并在 Power BI 仪表板上的卡片上显示每个度量的数据?我尝试使用 PowerQuery 来构建它,但我无法按照所需的方式将所有内容组合在一起,因此无法创建创建的百分比度量。此外,我希望能够根据工作订单对数据进行切片,以便为所选的工作订单更新卡片。因此,如果选择一个工作订单,那么我将获得该单个工作订单的 1stPassYield 和 TotalPassYield。如果我选择多个,则将这 2 个测量值一起平均并呈现该数字。
您能提供的任何帮助都会非常有帮助。谢谢。
最好使用 DAX 和 Measures(而不是 Power Query)来完成此任务。
您的措施可能如下所示:
1stPassYield =
var tbl = SUMMARIZE( TestData, [WorkOrder], [TaskID], "Min P/F", MIN([PassFail]) )
var result =
DIVIDE(
COUNTROWS(FILTER(tbl, [Min P/F] = "Pass")),
COUNTROWS(tbl)
)
return result
TotalPassYield =
var tbl = SUMMARIZE( TestData, [WorkOrder], [TaskID], "Max P/F", MAX([PassFail]) )
var result =
DIVIDE(
COUNTROWS(FILTER(tbl, [Max P/F] = "Pass")),
COUNTROWS(tbl)
)
return result