Найти в Дзене

Сортировка столбцов в матрице по убыванию итоговых значений в Power BI

Материал, изложенный в данной статье, также доступен в формате видеоролика - вы можете посмотреть его либо на Дзен, либо на YouTube. Когда вы имеете дело с матрицей в Power BI, отсортировать строки по возрастанию или убыванию итоговых значений - вопрос пары кликов мышкой. Даже одного. А что если вы хотите сделать то же самое, но со столбцами? Как-нибудь вот так: Уверен, что в следующих релизах Power BI такую сортировку тоже можно будет сделать в один-два клика, но на момент написания этой статьи все немного не так - придется немного попотеть. Чтобы реализовать такую сортировку, нам потребуется парочка вспомогательных таблиц и мера, которая свяжет их с таблицей фактов и выведет значения там, где это нужно. Первая вспомогательная таблица будет содержать уникальные названия продуктов, которые встречаются в таблице фактов. Ее мы задействуем для формирования строк нашей матрицы. Если возьметесь реализовывать такую таблицу с помощью DAX, создать ее можно с помощью вот такой строчки кода: В

Материал, изложенный в данной статье, также доступен в формате видеоролика - вы можете посмотреть его либо на Дзен, либо на YouTube.

Когда вы имеете дело с матрицей в Power BI, отсортировать строки по возрастанию или убыванию итоговых значений - вопрос пары кликов мышкой. Даже одного.

А что если вы хотите сделать то же самое, но со столбцами?

Как-нибудь вот так:

Уверен, что в следующих релизах Power BI такую сортировку тоже можно будет сделать в один-два клика, но на момент написания этой статьи все немного не так - придется немного попотеть.

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

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

Строчка кода в DAX для создания вспомогательной таблицы
Строчка кода в DAX для создания вспомогательной таблицы

Вторую таблицу мы задействуем для формирования столбцов, и она будет пообъемнее и посложнее в плане реализации. Количество записей в этой таблице будет равно количеству уникальных стран из таблицы фактов, возведенному в квадрат (в тестовом датасете Power BI таких стран 5, поэтому в данном случае будет 25 записей). Это объясняется тем, что при разных обстоятельствах каждая страна при сортировке может первой, последней или где-то посередине между двумя этими крайностями.

В DAX такую табличку можно собрать с помощью такого куска кода:

Код в DAX для создания вспомогательной таблицы
Код в DAX для создания вспомогательной таблицы

Если ранги в начале названий столбцов не нужны, можно вместо них использовать код ниже, который к началу названия каждого из столбцов приписывает от одного до пяти спецсимволов (пробел с нулевой длиной):

Код в DAX для создания вспомогательной таблицы (без рангов)
Код в DAX для создания вспомогательной таблицы (без рангов)

После того, как обе вспомогательные таблицы готовы, используем их в такой вот сложносочиненной мере:

Код в DAX для создания меры
Код в DAX для создания меры

Эту меру потом используем в матрице, чтобы получить требуемую сортировку:

Параметры наполнения матрицы
Параметры наполнения матрицы

По строкам и столбцам должны быть соответственно поля из вспомогательных таблиц.

Стоит упомянуть, что данная мера использует следующее свойство матриц в Power BI: если столбец или строка содержит только пустые значения, то данный столбец или строка не отображаются.

PBIX-файл, где все это реализовано, доступен по ссылке.

Подписывайтесь: