【问题标题】:"Relationship may be needed" although relationship is set尽管设置了关系,但“可能需要关系”
【发布时间】:2014-03-09 00:36:11
【问题描述】:

我在 Excel 2010 中有两个简单的表格 - 产品和销售:

然后我将它们链接到 PowerPivot - 并在此处创建了从 Sales.ProductId 到 Products.Id 的关系 - 如下所示:

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

虽然我实际上正在努力实现这一目标:

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

我上传了示例文件here

【问题讨论】:

    标签: excel-2010 powerpivot


    【解决方案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 中有详细解释(即使在不同的上下文中):

    通过这种方式,任何在 Sales(相关表)上活动的过滤器都会传播 到查找表。

    我可能遗漏了其他一些部分,但我已经在其他几个示例中尝试过,它只是按应有的方式工作:

    【讨论】:

    • 嗯,confused.m,我以为我找到了答案 :) 今天让我检查一下,我会尽快更新我的答案。
    • 彼得,我已经完全重写了我的答案,希望现在它会对您有所帮助并为您提供解决方案。我花了一些时间才意识到这一点,这有点误导 PowerPivot 中的关系如何工作......
    • 非常感谢 - 这看起来很有趣,今天晚些时候会详细介绍! +1 已经 :-)
    • 很高兴我能帮助彼得。如果您对答案感到满意,能否将我的答案标记为已接受?谢谢!
    猜你喜欢
    • 2013-07-08
    • 2015-07-18
    • 1970-01-01
    • 2012-06-25
    • 2019-08-06
    • 2020-11-23
    • 1970-01-01
    • 2021-06-14
    • 2020-01-12
    相关资源
    最近更新 更多