如何在 Power Bi 中创建复杂的聚合度量以在仪表板上使用?

问题描述 投票:0回答:1

我有一个从 MS SQL 导入的表。打开 PBIX 文件时,表数据会刷新。极简数据如下所示:

  • 就上下文而言,数据代表在我们制造的某些设备上运行的质量保证测试。测试零件时,我们会执行多项自动化测试,并将数据写入类似于您在下面看到的表中。因此,将“WorkOrder”视为零件编号,任务 ID 是该特定零件被测试的次数。 TestType 是执行的测试类型。

测试数据表:

工单 任务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 计算如下:

  • 如果按 WorkOrder 和 TaskID 对数据进行分组,请从 PassFail 中获取最低的布尔值(0 或 1)。这应该给你 2 行类似于:
工单 任务ID 通过失败
123 1 失败
123 2 通过
  • 鉴于上述情况,这意味着 WorkOrder 123 的 1stPassYield 为 50%

TotalPassYield 假设只要整个 WorkOrder/TaskID 分组为“Pass”,那么就是 100% 通过。因此,上面显示的模拟数据应该为我需要的措施提供以下值:

  • 第一次通过率:50%
  • 总通过率:100%

我想你可以将上面的分组表按 WorkOrder 进行分组,取 PassFail 的最大值(应该是 Pass)。

所以问题是,如何完成这一壮举并在 Power BI 仪表板上的卡片上显示每个度量的数据?我尝试使用 PowerQuery 来构建它,但我无法按照所需的方式将所有内容组合在一起,因此无法创建创建的百分比度量。此外,我希望能够根据工作订单对数据进行切片,以便为所选的工作订单更新卡片。因此,如果选择一个工作订单,那么我将获得该单个工作订单的 1stPassYield 和 TotalPassYield。如果我选择多个,则将这 2 个测量值一起平均并呈现该数字。

您能提供的任何帮助都会非常有帮助。谢谢。

powerbi dax powerquery dashboard measure
1个回答
0
投票

最好使用 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
© www.soinside.com 2019 - 2024. All rights reserved.