虽然建立了关系,但可能需要“关系”

时间:2014-03-09 00:36:12

标签: excel-2010 powerpivot

我在Excel 2010中有两个简单的表 - 产品和销售: enter image description here

然后我将它们链接到PowerPivot - 这里创建了从Sales.ProductId到Products.Id的关系 - 就像这样:

enter image description here

现在我正在尝试构建一个Pivot,对于Sales表中的每个productId,它也会向我显示ProductTable中的Category和PurchasePrice。然而,在这里我被困 - 因为这种关系在某种程度上是错误的。配置Pivot时,即使关系已存在,也会收到消息Relationship may be needed。生成的 - 错误的数据透视表如下所示:enter image description here

虽然我实际上是想要实现这个目标: enter image description here

我知道我可以在PowerPivot的Sales表中创建计算列,并使用RELATED DAX函数提取所有必需的数据 - 但由于真实世界项目需要大量的连接和字段,我希望有一个比这种解决方案更好的解决方案...

我上传了示例文件here

1 个答案:

答案 0 :(得分:1)

彼得

你的问题比我第一次有点棘手,我花了很多时间挖掘,但我认为我在阅读article about making distinct count in related tables之后找到了解决方案。

我更新了您的源文件(以便 Sales 表包含每个产品超过1个销售额)和uploaded it to my public Dropbox folder

您可以看到我创建了4个新的计算度量来说明我的解决方案并使其更容易理解(Excel 2010术语,2013年计算字段 ):

销售价格总计

=SUM(Sales[SalesPrice])

已售出商品

=COUNT(Sales[ProductId])

每件商品的购买价格

=CALCULATE(SUM(Products[PurchasePrice]),Sales)

购买价格总计

=[Purchase Price per Item] * [Product Sold]

这里的关键区别是计算每件商品的购买价格的公式。您应该在 CALCULATE 函数中 SUM 产品购买价格的原因在linked article中详细解释(即使在不同的背景下):< / p>

  

这样,Sales(相关表)上激活的任何过滤器都会传播   查找表。

可能还有其他一些我遗漏的部分,但我在其他几个例子中尝试了这个,它只是按照它应该的方式运行:

enter image description here