DAX AverageX, где размер таблицы уменьшается на единицу

Я пытаюсь найти правильный способ структурировать формулу DAX для вычисления определенного среднего. Я думаю, что смогу более или менее явно построить среднее значение, используя конструкцию сумма / счет, но мне интересно, может ли среднее значение с соответствующим набором фильтров таблицы выполнить свою работу.

В частности, мою проблему можно объяснить так: я пытаюсь вычислить среднюю стоимость автомобиля в 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, что я хочу сначала просуммировать по всем компонентам автомобиля, а затем вычислить средние по набору данных, где размерность данных была уменьшена на единицу (удалено только измерение «части») ?

Например, средняя стоимость Алисы тогда составила бы ((10 + 5 + 25) + (8 + 6 + 2)) / 2 = 28 Хотя если бы я построил сводную таблицу для каждого имени и за год, она бы показала Алисе 2000 40 Алиса 2001 16 и т. Д.

Спасибо.


dax
person user935136    schedule 07.06.2013    source источник


Ответы (1)


Попробуйте это ... это работает в случае, когда Name, Year предоставляет уникальную комбинацию.

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

Создайте сводную таблицу с [Имя] и [Год] в строках, затем добавьте [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
person Chris Gilbert    schedule 10.04.2014