0

我正在尝试找到构建 DAX 公式以计算特定平均值的正确方法。我想我可以通过使用 sum/count 构造或多或少明确地构造平均值,但我想知道带有一组适当的表过滤器的 averagex 是否可以完成工作。

具体来说,我的问题可以这样解释:我试图在 DAX 中计算汽车的平均成本,但我的数据包括所有组件的单独成本(现在称之为车身、车轮和发动机)。

 
名称 年份 零件成本
爱丽丝 2000 引擎 $10
爱丽丝 2000 轮 5 美元
爱丽丝 2000 身体 $25
爱丽丝 2001 引擎 8 美元
爱丽丝 2001 年车轮 $6
爱丽丝 2001 身体 $2
鲍勃 2000 发动机 10 美元
鲍勃 2000 轮 5 美元
鲍勃 2000 身体 $25
Bob 2001 发动机 8 美元
Bob 2001 车轮 $6
Bob 2001 身体 $2

有什么方法可以告诉 DAX 我想首先对汽车的所有组件求和,然后计算数据集的平均值,其中数据的维度已减少了一个(仅删除了“部分”维度) ?

例如,Alice 的平均成本将产生 ((10+5+25)+(8+6+2))/2 = 28 如果我有一个按名称和每年构建的数据透视表,它将显示 Alice 2000 40 爱丽丝 2001 16 等等...

谢谢。

4

1 回答 1

0

试试这个......它适用于 Name,Year 提供独特组合的情况。

[nCombinations]:=COUNTROWS(SUMMARIZE(Table1,Table1[Name],Table1[Year]))
[TotalCost]:=SUM(Table1[Cost])
[AverageCost]:=CALCULATE([TotalCost]/[nCombinations])

在行上创建一个带有 [Name] 和 [Year] 的数据透视表,然后在正文中添加 [nCombinations] [TotalCost] 和 [AverageCost]。

Row        nCombinations        TotalCost    AverageCost

Alice               2            56            28

2000                1            40            40

2001                1            16            16

Bob                 2            56            28

2000                1            40            40

2001                1            16            16

Grand Total         4           112            28
于 2014-04-10T13:17:32.340 回答