Рвав-рвав, сегодня я — собака-разузнака!
Перед вами 9-я заметка из нашего цикла «Мелкие радости», ниже мы рассмотрим такую проблему, как обработка двойной шапки в исходных данных.
Обычно подобна штукенция присутствует в данных при использовании файловой выгрузки (если она не самописная, конечно) из «материнской» системы, например, 1С и пр.
В общем, сегодня мы будем совместно познавать Power Query, используя, так сказать, классику жанра, поскольку подобная задача далеко не нова…Пример:
В качестве исходных данных используется файл MS Excel, с таблицей, содержащий двойной заголовок следующего вида:
Задача:
Трансформировать исходную таблицу таким образом, чтобы устранить двойной заголовок, то есть, в итоге, таблица должна стать плоской.
Решение:
- Для начала необходимо импортировать данные в Power BI:
- Удалить все шаги до шага «Навигация», поскольку в настройке «по умолчанию» при загрузке происходит автоматическое повышение заголовков и автоматическое присвоение типов данных:
- Транспонировать таблицу, использовав на вкладке «Преобразование» кнопку «Транспонировать»:
- Объединить первые 2 столбца, поскольку шапка таблицы содержит 2 уровня, использовав на вкладке «Преобразование» кнопку «Объединить столбцы»:
Рвав-рвав, при объединении столбцов необходимо указать какой-нибудь разделитель, в нашем случае это знак равенства («=»).
- Транспонировать получившуюся таблицу обратно:
- Поставить заголовки столбцов, например, воспользовавшись функционалом повышения заголовков:
- Повышение заголовков повлечет за собой шаг изменения типа данных, который можно оставить.
- Следующим шагом необходимо отменить свертывание «дополнительных» столбцов, для этого на вкладке «Преобразование» следует воспользоваться кнопкой «Отменить свертывание столбцов», использовав при этом функцию «Отменить свертывание других столбцов»:
- Разделить столбец «Атрибут» по имеющемуся разделителю, то есть знаку равенства («=»), который использовался ранее в качестве разделителя, воспользовавшись кнопкой «Разделить столбец» на вкладке «Главная»:
- Присвоить окончательные заголовки получившимся столбцам:
- Далее следует заменить значение «Пусто» на значение «null» в столбце «Город», воспользовавшись кнопкой «Замена значений» на вкладке «Преобразование»:
- Последним шагом является корректное заполнение ячеек, содержащих значение «null», по столбцу «Город». Данное действие можно выполнить автоматически, выбрав опцию «Заполнить вниз», имеющуюся у кнопки «Заполнить» на вкладке «Преобразование»:
- После последовательного выполнения перечисленных шагов для сохранения внесенных изменений необходимо нажать кнопку «Закрыть и применить», расположенную на закладке «Главная».
Извините, но я уже все, лапы ломит, и хвост отваливается…
Ваш СмайлP. S. Рвав-рвав, после публикации ссылки на Facebook, и, собственно, просмотра материала, поступило предложение заполнить значения «null» сразу после 1-го транспонирования. Я с этим согласен, так, действительно, у нас будет потом чуть меньше шагов, но текст оставляю в оригинальном виде.
P. P. S. Рва-ва-вав, собака Смайл прислушивается к аудитории (по крайней мере, иногда, и к некоторым товарищам :-Р)