dax处理矩阵报表中的摘要值

时间:2018-11-11 17:42:21

标签: dax ssas-tabular

源数据列为商店,产品,商店销售和产品销售

StoreSales具有重复的值,即使在不同的Store中也是如此。

正在寻找一个dax措施来处理StoreSales,如图所示。

这是到目前为止最接近的,但不考虑商店之间的重复。

商店销售:= sumx(DISTINCT(_Sales [StoreSales),_Sales [StoreSales])

screenshot of source and pivot table enter image description here

1 个答案:

答案 0 :(得分:1)

要直接回答您的问题,此公式应会为您提供所需的结果:

Desired Result for Store Sales = 
IF(ISFILTERED(_Sales[Store]), SUM(_Store[Store Sales]))

但是,我建议重新访问您的数据模型设计。从概念上讲,这是不正确的(您将详细数据与相同数据的摘要混合在一起),并且DAX会遇到严重问题。一种更好的数据结构方式:

  • 删除“商店销售”列。这是多余的,不适合细节的数据级别。
  • 将“产品销售”列重命名为“销售金额”。这只是销售金额,没有任何限定词。
  • 创建一个度量“总销售额” = SUM(_Sales [销售金额])。它将正确计算产品和商店级别的总销售额。

如果您需要采取特殊措施进行店铺销售,请使用SUMX:

Store-level sales = SUMX (VALUES(_Sales[Store]), [Total Sales])

如果您需要显示产品对商店销售额的贡献:

Product Contribution = `DIVIDE([Total Sales], [Store-Level Sales])