我正在尝试找到构建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 等...
感谢。
答案 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