Power BI:通过产品和文件名计算首次和最终产量的措施

Power BI: Measure to calculate the first and final yield by product and file name

我需要创建一个度量来计算产品在相应文件名下的首次通过率和最终通过率。

这是我的测试数据样本。在这种情况下,每个文件名(例如:File_111)将测试 3 个相同的产品 - P1、P2、P3。 Sample Data

按理说,first-pass yield的结果应该是:

  1. File_111 - 通过,失败,通过 (66.67%)
  2. File_211 - 通过、失败、失败 (33.33%)
  3. File_311 - 通过,通过,通过 (100%)

但是,我遵循了其中一个示例并使用了以下代码,但是方案 2 的第一遍 yield 是错误的。

    FPYield = 
    VAR distinctCountTotal = CALCULATE(DISTINCTCOUNT('Sheet1'[Product Number]))
    VAR distinctCountFail = CALCULATE(DISTINCTCOUNT('Sheet1'[Result]),'Sheet1'[Result] = "Fail")
    RETURN 
    DIVIDE(distinctCountTotal - distinctCountFail, distinctCountTotal)

如图所示,对于场景 2,首次收益率为 66.67%,而应为 33.33%。我不知道犯了什么错误。对于场景 3,它显示正确的是 100%。

Scenario-1 Scenario-2

需要考虑的事项:

  1. 应该可以通过文件名或产品编号过滤平均 FPY(以产品编号作为我的测试仪,只有 3 个 - P1、P2、P3

跟进,我还需要计算如果那个文件中的所有产品编号都在最后一个运行中通过的最终通过率。我应该采取什么 dax 措施来获取 运行 的最后状态?谢谢!

编辑: 如果我的数据集中有 DateTime 列,关于如何计算最终通过率有什么建议吗?

在这两种情况下,您都应该使用不同的产品编号计数:

FPYield = 
    VAR distinctCountTotal = CALCULATE(DISTINCTCOUNT('Sheet1'[Product Number]))
    VAR distinctCountFail = CALCULATE(DISTINCTCOUNT(Sheet1[Product Number]),'Sheet1'[Result] = "Fail")
    RETURN 
    DIVIDE(distinctCountTotal - distinctCountFail, distinctCountTotal)

要获取产品编号的最后状态,您需要使用数据中可用的日期变量。如果没有可用的日期变量,那么您必须在基本查询中创建一个索引列来执行此操作。一旦你有了一个 date/index 变量,你就可以获得最新日期或最高索引的结果。

希望对您有所帮助。