【问题标题】:PowerBI measure is giving an unexpected valuePowerBI 度量给出了一个意想不到的值
【发布时间】:2019-09-09 07:09:11
【问题描述】:

我正在 PowerBI 中设置一份报告,以深入了解每个部门计划的工作量。我知道要为特定项目制造的产品数量以及每个部门所需的时间(以分钟为单位)。我创建了一个度量来计算每个部门在特定时期内计划的总时间,但它给出了一个我不明白的意外总数。

数据模型由四个表组成:一个包含唯一产品 ID 的表, 包含运行项目信息的表格(包括在特定日期之前生产的产品数量) 包含制造路线的表格,显示每个部门制造特定产品所需的时间 日历表格包含未来 10 年的所有日期

表之间的关系目前都有一个双向过滤器。下图包含模型以及我使用的示例数据:

Model

我们要做的是创建一个以小时为单位的每个部门计划工作量的概览。所以为此我创建了一个度量:

以小时为单位的总时间 = (SUM(Projects[Amount]) * SUM(Routing[Time (in minutes)]) / 60

当我对特定产品使用此度量时,一切似乎都很好。但是,当查看每个部门的总时间时,我会得到更高的价值。我不确定这是从哪里来的。图中的表格显示了我在 PowerBI 中看到的数字。 Total time in hours (227) 的总和远高于单个产品的总时间总和:

Total time

谁能帮我弄清楚 PowerBi 是如何计算这 227 个总数的?

【问题讨论】:

  • 您是否熟悉联接?
  • 是的,我很熟悉它们。
  • 他的解决方案是否有效,或者您更愿意创建一个带有连接的结果集?
  • 该解决方案适用于该报告,但我也会对您的报告感兴趣。您是否建议在度量中使用联接?
  • 好的,我会尝试在网上设置一个示例。

标签: powerbi


【解决方案1】:

“项目”和“路由”[部门]之间没有链接。所以在你的总水平上,SUM ( 'Projects'[Amount] ) => (5 + 5 + 5 + 5 + 4 + 4) => 28SUM ( 'Routing'[Time (in minutes)] => (186 + 301) => 487。因此,您的总数为(28 * 487) / 60 => 13,636 / 60 ~=> 227

最终,行为是“正确的”,因为您编写的 DAX 正在评估是否符合规范,但您可能需要采用不同的计算方法。

一种可能的方法是:

New Total time in hours =
SUMX ( // SUMX iterates a table, and performs a calculation per row, collecting these
       // subtotals in a sum.
  VALUES ( 'Products'[Product ID] ), // VALUES gives us a table made up of unique values
                                     // in context from the named column (or table).
  [Total time in hours] // your already existing measure
)

【讨论】:

  • 谢谢!您的解释非常清楚,您提出的解决方案非常适合我的报告。
猜你喜欢
  • 2011-11-29
  • 2016-12-17
  • 1970-01-01
  • 1970-01-01
  • 2020-07-19
  • 2023-03-17
  • 2019-05-19
  • 2017-01-05
  • 2021-10-14
相关资源
最近更新 更多