DAX AverageX其中表维度减1

时间:2013-06-07 15:01:23

标签: dax

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

具体来说,我的问题可以解释如下:我正在尝试计算DAX中汽车的平均成本,但我的数据包括所有组件的单独成本(现在称之为车身,车轮和引擎) 。

 
Name  Year Part   Cost
Alice 2000 Engine $10 
Alice 2000 Wheels $5
Alice 2000 Body $25
Alice 2001 Engine $8
Alice 2001 Wheels $6
Alice 2001 Body $2
Bob   2000 Engine $10
Bob   2000 Wheels $5
Bob   2000 Body $25
Bob   2001 Engine $8
Bob   2001 Wheels $6
Bob   2001 Body $2

有没有办法告诉DAX我想首先对汽车的所有组件进行求和,然后计算数据集的维数,其中数据的维数减少了一个(仅“部分”)尺寸已删除)?

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

感谢。

1 个答案:

答案 0 :(得分: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