Сводные значения обработки dax в матричном отчете - PullRequest
0 голосов
/ 11 ноября 2018

Столбцы исходных данных: Store, Product, StoreSales и ProductSales

StoreSales имеет повторяющиеся значения даже в разных магазинах.

Ищем меру дакса для обработки StoreSales, как описано на рисунке.

Пока это самое близкое, но не учитывает дубликаты между магазинами.

Продажи в магазине: = сумма (DISTINCT (_Sales [StoreSales), _Sales [StoreSales])

снимок экрана с исходной и сводной таблицей enter image description here

1 Ответ

0 голосов
/ 12 ноября 2018

Чтобы ответить на ваш вопрос напрямую, эта формула должна дать вам желаемый результат:

Desired Result for Store Sales = 
IF(ISFILTERED(_Sales[Store]), SUM(_Store[Store Sales]))

Тем не менее, я рекомендую вернуться к дизайну вашей модели данных. Это концептуально неверно (вы смешиваете подробные данные со сводкой тех же данных), и у вас будут серьезные проблемы с DAX. Лучший способ структурировать ваши данные:

  • Убрать столбец "Магазин продаж". Это избыточно и не соответствует уровню детализации данных.
  • Переименуйте столбец «Продажи товара» в «Сумма продажи». Это просто сумма продажи, без каких-либо классификаторов.
  • Создание показателя "Общий объем продаж" = SUM (_Sales [Sale Amount]). Он будет правильно рассчитывать общий объем продаж как на уровне продуктов, так и на уровне магазинов.

Если вам нужна специальная мера для продаж в магазине, используйте SUMX:

Store-level sales = SUMX (VALUES(_Sales[Store]), [Total Sales])

А если вам нужно показать вклад продукта в продажи магазина:

Product Contribution = `DIVIDE([Total Sales], [Store-Level Sales])
...