首页 > 解决方案 > Power BI:按产品和文件名计算首次和最终产量的措施

问题描述

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

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

按理说,一次合格率的结果应该是:

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

但是,我遵循了其中一个示例并使用了以下代码,但场景 2 的第一次通过产量是错误的。

    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%。

方案一 方案二

需要考虑的事项:

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

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

编辑: 如果我的数据集中有 DateTime 列,关于如何计算最终合格率的任何建议?

标签: powerbidaxdata-analysispowerbi-desktop

解决方案


在这两种情况下,您都应该使用 Distinct Count of Product number:

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

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

希望这可以帮助。


推荐阅读