0

我的报告中有几个不同的表格,出于演示目的,假设我有一个数据源是实际发票金额,然后我有另一个表格是预测金额。每个表都有几个相同的维度,比如国家、地区、产品分类和产品。

我想要的是能够显示一个从这两个数据源中提取信息的表格/矩阵,就像这样

Description              Invoice    Forecast    vs Forecast
USA                        300          325           92% 
    East                   150          175           86%
       Product Grouping 1  125          125          100%
           Product 1        50           75           67%
           Product 2        75           50          150%
       Product Grouping 3   25           50           50%
           Product 3        25           50           50%
    West                   150          150          100%
       Product Grouping 1   75          100           75%
           Product 1        25           50           50%
           Product 2        50           50          100%
       Product Grouping 3   75           50          150%
           Product 3        75           50          150%

我还没有找到将来自多个数据源的信息组合到一个矩阵表中的方法,因此我们将不胜感激。我确实发现的一件事是有人将行的结构硬编码到一个单独的数据源中,然后使用 DAX 表达式将信息片段拉入列中,但我不喜欢这种解决方案,因为行不是恒定的。

4

1 回答 1

1

您要问的是星型模式的一个常见部分:将来自不同事实表的事实组合在一起成为一个视觉对象或报告。

什么不该做(你可能会被诱惑)

您不想做的是将 2 个事实表合并到 Power BI 数据模型中的单个表中。这是很多工作,完全没有必要。特别是,因为可能存在 2 个事实表没有共同的维度(例如,实际金额可能与客户维度相关联,但预测金额不会)。

您也不想做的是以任何方式将 2 个事实表相互关联。同样,这是很多工作。(特别是因为没有自然的方式在行级别关联它们。)

该怎么办

通常,处理 2 个事实表的方式与处理单个事实表的方式相同。首先,您有自己的维度(国家、地区、分类、产品、日期、客户)。然后加载事实表,并将它们连接到维度。您不会将事实表相互连接。然后创建度量(即 DAX 表达式)。

当您想将来自两个事实的度量组合在一个矩阵中时,您只使用对两个事实表都有意义的行/列。例如,实际金额可能与客户相关联,但预测金额不相关。因此,您不能在矩阵中包含客户信息。另一种可能性是每天记录实际金额,而对整个月进行预测。在这种情况下,您可以将月份放入矩阵中(因为这对两者都有意义),但您不想使用日期,因为 Power BI 不知道如何将预测划分为各个日期。

只要您只使用对两个事实表都有意义的维度和属性,您就可以轻松地创建一个您在上面设想的矩阵。只需拖动所需的属性,然后添加度量(即 DAX 表达式)。

发票和预测列都是度量值。来自不同事实表的两个度量可以组合成第三个度量,用于 vs. Forecast 度量。只要您只使用对两个事实表都有意义的维度/属性,一切都会起作用。

我在您提议的数据透视表中没有看到任何让我觉得有问题的东西。

其他情况

如果您遇到预测在一个月级别而实际在日期级别的情况,那么您可能想知道如何将它们与同一日期维度相关联。这种情况被称为具有不同的粒度,这里有一篇很好的文章,我建议阅读它有建议:https ://www.daxpatterns.com/handling-different-granularities/ 。实际上,有一整节内容是关于将预算与收入进行比较的,您可能会发现它很有用。

最后,您提到有人硬编码了行的结构并使用 DAX 表达式来构建所有内容。诚然,这听起来有点矫枉过正。Power BI 的目标是灵活性。一旦你有了事实、度量和维度,你就可以以任何有意义的方式组合它们。对行进行硬编码消除了这种灵活性,并且是一个很好的线索,表明某些事情是不正确的。(另一个不正确的好线索是,当 DAX 表达式对于本应简单的事情看起来真的很复杂时)


我希望我的回答有帮助。这是一个笼统的答案,因为您的问题很笼统。如果您对自己的具体情况有具体问题,请务必发布其他问题。(样本数据、模型描述、您看到的问题以及您希望看到的内容有助于获得好的答案。)

如果您是 Power BI、数据模型和星型架构的新手,Alberto Ferrari 和 Marco Russo 有一本非常棒的书,我建议您阅读这本书以获得速成课程:https ://www.sqlbi.com/books /analyzing-data-with-microsoft-power-bi-and-power-pivot-for-excel/

于 2018-02-05T17:43:13.100 回答