我在Excel 2010中有两个简单的表 - 产品和销售:
然后我将它们链接到PowerPivot - 这里创建了从Sales.ProductId到Products.Id的关系 - 就像这样:
现在我正在尝试构建一个Pivot,对于Sales表中的每个productId,它也会向我显示ProductTable中的Category和PurchasePrice。然而,在这里我被困 - 因为这种关系在某种程度上是错误的。配置Pivot时,即使关系已存在,也会收到消息Relationship may be needed
。生成的 - 错误的数据透视表如下所示:
虽然我实际上是想要实现这个目标:
我知道我可以在PowerPivot的Sales表中创建计算列,并使用RELATED
DAX函数提取所有必需的数据 - 但由于真实世界项目需要大量的连接和字段,我希望有一个比这种解决方案更好的解决方案...
我上传了示例文件here。
答案 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(相关表)上激活的任何过滤器都会传播 查找表。
可能还有其他一些我遗漏的部分,但我在其他几个例子中尝试了这个,它只是按照它应该的方式运行: