Это можно сделать, но не супер просто.Вам понадобится мера с SWITCH
, а также таблица для ваших заголовков.
Вы можете создать таблицу заголовков по следующим строкам:
Header =
UNION(SUMMARIZE(Sales, Sales[Product], "Group", "By Product", "Index", 1),
SUMMARIZE(Sales, Sales[Year], "Group", "By Year", "Index", 2),
DATATABLE("Header", STRING, "Group", STRING, "Index", INTEGER,
{{" Total", "Summarizations", 3},
{"% of Total Sales", "Summarizations", 3},
{"Avg Sale Size", "Summarizations", 3}}))
Что будет выглядеть следующим образом:
Header, Group, Index,
Product 1, By Product, 1,
Product 2, By Product, 1,
2016, By Year, 2,
2017, By Year, 2,
2018, By Year, 2,
Total, Summarizations, 3,
% of Total Sales, Summarizations, 3,
Avg Sale Size, Summarizations, 3
Эта таблица будет автоматически расширяться при добавлении большего количества продуктов или годов.
(Примечание. Столбец Index
предназначен для правильного упорядочения их с помощью функции Сортировка по столбцу.)
После того, как вы это сделаете, вам просто нужно поместить Group
и Header
в столбцы.визуального отображения матрицы и Salesperson
в строках с переключающей мерой в значениях.
Measure =
VAR Val =
SWITCH(SELECTEDVALUE(Header[Group]),
"By Product",
CALCULATE(SUM(Sales[Amount]),
FILTER(Sales, Sales[Product] = MAX(Header[Header]))),
"By Year",
CALCULATE(SUM(Sales[Amount]),
FILTER(Sales, Sales[Year] = VALUE(MAX(Header[Header])))),
SWITCH(SELECTEDVALUE(Header[Header]),
"% of Total Sales",
DIVIDE(SUM(Sales[Amount]),
CALCULATE(SUM(Sales[Amount]), ALL(Sales))),
"Avg Sale Size", AVERAGE(Sales[Amount]),
SUM(Sales[Amount]))
)
RETURN
IF(SELECTEDVALUE(Header[Header]) = "% of Total Sales",
FORMAT(Val, "0.0%"),
FORMAT(Val, "0.0"))
Каждая отдельная группа получает свой собственный расчет, и мы должны использовать функцию FORMAT
для принудительного вызова таблицыдля правильного форматирования процентной функции.
(Примечание: если у вас есть срезы или фильтрация, вы, вероятно, захотите использовать ALLSELECTED
там, где я использовал ALL
выше.)
Воткак выглядит моя таблица (не точно такие же данные, но похожая структура)
![Grouped Table](https://i.stack.imgur.com/gocak.png)
и вот файл PBIX, который я создал для этого:
https://drive.google.com/file/d/1qxc5p53MgmOm-NH3EcivkZLhLeEHpr4R/