РАСЧЕТ в нижней гранулярности - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть матрица, в которой используются поля "Product Group" и "Product" в строках.

Я хочу рассчитать среднюю цену на продукты, продажи которых были в прошлом году.Sales LY - это расчетная мера:

Sales LY = CALCULATE(SUM('Table'[Qty]);SAMEPERIODLASTYEAR('Calendar'[Date]))

И вот меру, которую я пытаюсь найти:

AvgPrice= CALCULATE(DIVIDE([Turnover];[Quantity]);FILTER('Table'; [Sales LY]>0))

Это прекрасно работает для более низкой гранулярности (Product), нопри более высокой степени детализации (группа продуктов) расчет неверен, поскольку группа продуктов добавляет ВСЕ продукты в пределах этой группы продуктов, а мне нужны только те, которые имели продажи в прошлом году.

Как мне сообщить DAX: "Использовать нижнюю гранулярность »?

1 Ответ

0 голосов
/ 19 февраля 2019

Один из вариантов в подобных ситуациях - сделать более высокую гранулярность суммой самых низких значений гранулярности.Примерно так:

GroupAvgPrice = CALCULATE( SUMX( VALUES( 'Table'[Product] ), [AvgPrice] ) )

Когда в контексте оценки есть только один продукт, он просто уменьшается до [AvgPrice], но также должен работать при более высокой степени детализации.

...