Поворот строк в столбцы в Power Query

Иногда у вас есть таблица данных, которая описывает отношение 1 ко многим. Количество значений неизвестно и может варьироваться. Поэтому написание кода Power Query для разворота может оказаться непростой задачей. Давайте рассмотрим пример.

Поворот строк в столбцы в Power Query

Первый столбец – это список городов присутствия офисов. Второй столбец – это список отделов в каждом офисе.

Как вы можете видеть, не в каждом офисе есть все типы отделов, но в каждом офисе есть один или несколько отделов.

Я хочу преобразовать исходную таблицу в следующую форму:

Поворот строк в столбцы в Power Query

Обычно я бы посоветовал вам оставить его в табличном формате, поскольку он идеально подходит для дальнейшего анализа с помощью таблиц Pivot или в Power BI.

Но если вы хотите создать окончательный отчет в Power Query, то эта статья для вас.

Работа в Power Query

Мои данные уже находятся в таблице, поэтому далее я загружаю таблицу в Power Query.

Поворот строк в столбцы в Power Query

Для начала мне нужно сгруппировать строки по местоположению.

Поворот строк в столбцы в Power Query

Это дает следующую таблицу со столбцом таблиц. Таблица в каждой строке столбца “Группировка” содержит местоположение и отделы для местоположения в этой строке.

Далее мне нужно транспонировать столбец “Департамент” в этих таблицах, превратив строки в столбцы. Для этого я могу использовать функцию Table.Transpose.

Но поскольку я хочу транспонировать только один столбец, а не всю таблицу, я воспользуюсь функцией Table.SelectColumns, чтобы взять только этот столбец для Table.Transpose.

Добавьте пользовательский столбец и введите следующий код

=Table.Transpose(Table.SelectColumns([Группировка],{"Департамент"}))
Поворот строк в столбцы в Power Query

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

Но если я сделаю это, то будет создано только три новых столбца, поэтому щелкните на “Загрузить еще” и только потом нажмите “ОК”.

Однако проблема здесь заключается в том, что в коде M жестко закодировано количество создаваемых столбцов.

Поворот строк в столбцы в Power Query

Функция Table.ExpandTableColumn использует четыре аргумента (параметра):

  1. Таблица, содержащая колонку для расширения
  2. Имя расширяемого столбца
  3. Имена столбцов внутри расширяемого столбца
  4. Имена новых столбцов, которые будут созданы в результате расширения (не обязательный аргумент, можно удалить).

В существующем виде этот код создаст только пять столбцов, поэтому если в исходных данных их больше, они не появятся в итоговой таблице.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Добавить комментарий