首页 文章

Power BI:如何使度量从另一列分组

提问于
浏览
0

我刚刚开始使用Power BI,并且正在努力解决这个问题 .

这是我从Excel文件中提取的数据的一个非常小的示例 . 任何其他方式都无法得到它 .

╔══════════════╦══════════════════╦═══════════════╦═══════════════════════╗ ║ Product Type ║ Product Name ║ Dollar Sales ║ Product Share of Type ║ ╠══════════════╬══════════════════╬═══════════════╬═══════════════════════╣ ║ Bagels ║ Client 1 Bagels ║ $15,521.09 ║ 2.42 ║ ║ Bagels ║ Client 2 Bagels ║ $112,059.11 ║ 17.46 ║ ║ Muffins ║ Client 1 Muffins ║ $141,417.84 ║ 3.25 ║ ║ Muffins ║ Client 2 Muffins ║ $1,483,643.52 ║ 34.11 ║ ║ Muffins ║ Client 3 Muffins ║ $19,008.64 ║ 0.44 ║ ║ Pies ║ Client 2 Pies ║ $1,718,242.24 ║ 43.90 ║ ║ Pies ║ Client 3 Pies ║ $39,883.20 ║ 1.02 ║ ║ Pies ║ Client 4 Pies ║ $282,140.64 ║ 7.21 ║ ╚══════════════╩══════════════════╩═══════════════╩═══════════════════════╝

我没有所有Bagel产品,只有少数几个与我合作 . 与此数据集中的其他产品相同 .

因此,如果我想计算所有Bagel Type产品的总销售额,我可以与我现有的产品非常接近 .

我可以通过计算 Dollar Sales/(Product Share of Type/100) 的列来计算Type的总美元销售额 . 示例结果:

╔══════════════╦══════════════════╦════════════════════╗ ║ Product Type ║ Product Name ║ Type Total Dollars ║ ╠══════════════╬══════════════════╬════════════════════╣ ║ Bagels ║ Client 1 Bagels ║ $641,367.36 ║ ║ Bagels ║ Client 2 Bagels ║ $641,804.75 ║ ║ Muffins ║ Client 1 Muffins ║ $4,351,318.15 ║ ║ Muffins ║ Client 2 Muffins ║ $4,349,585.22 ║ ║ Muffins ║ Client 3 Muffins ║ $4,320,145.45 ║ ║ Pies ║ Client 2 Pies ║ $3,913,991.44 ║ ║ Pies ║ Client 3 Pies ║ $3,910,117.65 ║ ║ Pies ║ Client 4 Pies ║ $3,913,185.02 ║ ╚══════════════╩══════════════════╩════════════════════╝

在百吉饼中,我们得到:

  • $ 641,367.36 Client 1 Bagels 的总类型美元

  • $ 641,804.75 Client 2 Bagels 的总类型美元

  • 这给出了437.39美元的非常小的差异 .

微小的差异并不会让我担心 .

问题是为每一行计算结果(因为我使用了计算列,我不知道另一种方式) . 如果我转身想要获得所有类型的美元,那么每个记录的值都会计算在内 . 根据我的数据集中有多少产品项目,这将是双倍,三倍,四倍等 .

在百吉饼的情况下:

  • $ 1,283,172.11总类型美元

  • 这基本上是双重计数

那么如何创建一个考虑到另一列的度量呢?

如果我要将产品类型的总和(美元销售额)和产品类型的总和(产品类型的份额)相加,那么它将更准确,并且我不会重复计算完成的值 .

(我不需要将表作为输出,如果我要使用Power PI创建矩阵,我只需要一个可以给出与最终列相同结果的度量):

╔══════════════╦═══════════════════╦════════════════════╦════════════════════╗ ║ Product Type ║ Sum(Dollar Sales) ║ Sum(Share of Type) ║ Type Total Dollars ║ ╠══════════════╬═══════════════════╬════════════════════╬════════════════════╣ ║ Bagels ║ $127,580.20 ║ 19.88 ║ $641,751.51 ║ ║ Muffins ║ $1,644,070.00 ║ 37.80 ║ $4,349,391.53 ║ ║ Pies ║ $2,040,266.08 ║ 52.13 ║ $3,990,535.35 ║ ╚══════════════╩═══════════════════╩════════════════════╩════════════════════╝

我已经尝试了 CALCULATE()SUMX() ,但在进行最终计算之前,我仍然无法根据产品类型获得小计 .

我确实尝试创建一个 GROUPBY() 值表,但问题是我不能将这些结果与其他结果放在同一个表/图中,因为过滤器基本上只运行这一个数据集/表中的所有内容 .

有什么想法吗?

谢谢!

1 回答

  • 0

    试试这个:

    TotalSales := CALCULATE(SUM(TableName[Dollar Sales]),
                            All(TableName[Product Name]
                           )
    

    您使用该公式所做的是忽略数据透视表在“产品名称”列上强加的任何过滤器,因此它将为您提供放置在数据透视表中的任何其他字段的总计 . 因此,如果您在行标签中创建了带有产品类型和产品名称的数据透视表,它将按产品类型为您提供总计 .

    希望这可以帮助!

相关问题