dax 处理矩阵报表中的汇总值
dax handling summary values in a matrix report
源数据列是 Store、Product、StoreSales 和 ProductSales
StoreSales 具有重复的值,即使在不同的商店中也是如此。
正在寻找一个 dax 度量来处理图中描述的 StoreSales。
这是目前为止最接近的,但不考虑商店之间的重复。
店铺销售额:=
sumx(DISTINCT(_Sales[StoreSales], _Sales[StoreSales])
screenshot of source and pivot table
要直接回答你的问题,这个公式应该会给你想要的结果:
Desired Result for Store Sales =
IF(ISFILTERED(_Sales[Store]), SUM(_Store[Store Sales]))
但是,我建议重新审视您的数据模型设计。这在概念上是不正确的(您将详细数据与相同数据的摘要混合在一起),并且您将遇到 DAX 的严重问题。一种更好的数据结构方式:
- 删除列 "Store Sales"。它是多余的,不符合数据的详细程度。
- 将列 "Product Sales" 重命名为 "Sale Amount"。这只是销售额,没有任何限定词。
- 创建度量 "Total Sales" = SUM(_Sales[Sale Amount])。它将正确计算产品和商店级别的总销售额。
如果您需要对实体店销售采取特殊措施,请使用 SUMX:
Store-level sales = SUMX (VALUES(_Sales[Store]), [Total Sales])
如果您需要展示产品对实体店销售的贡献:
Product Contribution = `DIVIDE([Total Sales], [Store-Level Sales])
源数据列是 Store、Product、StoreSales 和 ProductSales
StoreSales 具有重复的值,即使在不同的商店中也是如此。
正在寻找一个 dax 度量来处理图中描述的 StoreSales。
这是目前为止最接近的,但不考虑商店之间的重复。
店铺销售额:= sumx(DISTINCT(_Sales[StoreSales], _Sales[StoreSales])
screenshot of source and pivot table
要直接回答你的问题,这个公式应该会给你想要的结果:
Desired Result for Store Sales =
IF(ISFILTERED(_Sales[Store]), SUM(_Store[Store Sales]))
但是,我建议重新审视您的数据模型设计。这在概念上是不正确的(您将详细数据与相同数据的摘要混合在一起),并且您将遇到 DAX 的严重问题。一种更好的数据结构方式:
- 删除列 "Store Sales"。它是多余的,不符合数据的详细程度。
- 将列 "Product Sales" 重命名为 "Sale Amount"。这只是销售额,没有任何限定词。
- 创建度量 "Total Sales" = SUM(_Sales[Sale Amount])。它将正确计算产品和商店级别的总销售额。
如果您需要对实体店销售采取特殊措施,请使用 SUMX:
Store-level sales = SUMX (VALUES(_Sales[Store]), [Total Sales])
如果您需要展示产品对实体店销售的贡献:
Product Contribution = `DIVIDE([Total Sales], [Store-Level Sales])