首页 > 解决方案 > Microsoft Power BI DAX - 使用 ALLEXCEPT 的棘手情况

问题描述

我有一种情况,我有一个带有一张表的 excel 文件,我将这张表(销售)加载为 Power BI 表。

我有两个主要的维度列 - 模型和产品。我有一个名为 SalesAmount 的数字列。

我的 Sales 表中总共只有 3 个源列。

一个模型可以有许多产品,因此是 1:M 关系,但在同一个(销售)表中。

如图所示,我正在使用 Power BI 矩阵。

在此处输入图像描述

我有以下内容:

1)

称为[Sum of SalesAmount] 的度量:SamesAmount 列的简单总和

2)

Sales 表中名为[ModelSalesAmount]的计算列:

ModelSalesAmount = CALCULATE(
                             SUM(Sales[SalesAmount]),
                             ALLEXCEPT(Sales,Sales[Model])
                            )

Sales 表中名为[ProductOnModel]的计算列:

ProductOnModel = Sales[SalesAmount]/Sales[ModelSalesAmount]

我有如图所示的矩阵视觉。

ModelSalesAmount 的聚合值不正确。

HL Fountain Frame是一个模型,这个模型下有8个产品。

在矩阵中具有 SUM 聚合的计算列 Sales[ModelSalesAmount] 在产品级别 (3,365,069.274) 正常工作,但在模型级别不能正常工作。模型级别聚合 26,920,554.19 不正确。我想要模型级别的 3,365,069.274,而不是 26,920,554.19。

有趣的是,在矩阵中使用 SUM 聚合的计算列 Sales[ProductOnModel],而在分母中使用 Sales[ModelSalesAmount] 计算列,在单个产品级别和模型级别都可以正常工作!

我应该怎么做才能删除不需要的值 26,920,554.19,并使其变为 3,365,069.274 ?

我在下面尝试了这个,但没有工作:

ModelSalesAmount_CC =  IF (

                            HASONEVALUE(Sales[Product]) = TRUE,
                            
                            CALCULATE(

                                      SUM(Sales[SalesAmount]),

                                      ALLEXCEPT(Sales,Sales[Model])

                                     ),

                             ...........

                           )

请问有什么建议吗?

标签: powerbidaxpowerbi-desktop

解决方案


将计算列 [ModelSalesAmount] 更改为度量值,我得到正确的输出。谢谢亚历克西斯。


推荐阅读