Превращаем хаос в порядок: как использовать Unpivot в Power Query для анализа данных
Всем привет. Многие пользователи Excel сталкиваются с проблемой: таблицы, удобные для печати, совершенно непригодны для анализа данных. В этом гайде вы узнаете, как с помощью Power Query превратить «неправильную» таблицу с вложенными заголовками в плоскую структуру, готовую для сводных таблиц и любого анализа .
Если кажется, что букв много - то вот
Проблема: почему обычная таблица не подходит для анализа
Рассмотрим типичный пример таблицы с плановыми и фактическими показателями по продуктам и регионам (здесь подставьте свои данные). Она наглядна для печати и просмотра, но имеет серьёзные недостатки:
Вложенные заголовки: невозможно сравнить показатели по продукту/региону.
Данные на пересечении строк и столбцов: сложно строить сводные таблицы.
Несколько строк заголовков: еxcel не распознаёт структуру правильно.
Решение: нужна «плоская таблица» — с одной строкой заголовков и одним типом данных в каждом столбце .
Шаг 1: Подготовка данных в Excel
1.1 Создание именованного диапазона
Вместо умной таблицы используем именованный диапазон (многие пользователи не любят умные таблицы, да тут нам они особо и не нужны):
Выделите всю таблицу
В имени ячейки (слева сверху) введите понятное имя, например Данные
Обязательно нажмите Enter после ввода имени
1.2 Загрузка в Power Query
Для Excel 2019+:
Вкладка Данные - группа Получить и преобразовать данные - Из таблицы/диапазона
Для Excel 2016:
Вкладка Данные - группа Загрузить & преобразовать - Создать запрос
Для Excel 2010/2013: нужно отдельно скачать надстройку Power Query. Но с официального сайта Microsoft уже не получится это сделать.
Шаг 2: Работа с заголовками (первый этап)
Заголовки в нашей таблице занимают три строки:
2.1 Оставляем только строки заголовков
В редакторе Power Query справа на панели Примененные шаги удалите шаги: «Изменённый тип» и «Повышенные заголовки»
Вкладка Главная - группа Сократить строки - Сохранить строки - Сохранить верхние строки
Укажите 3 (количество строк заголовков)
2.2 Транспонирование таблицы
Цель: превратить горизонтальный массив в вертикальный.
Вкладка Преобразование - Транспонировать
2.3 Заполнение пустых значений
Выделите столбцы с типом данных null (через Ctrl)
Вкладка Преобразование - Заполнить - Заполнить вниз
2.4 Объединение столбцов в один
Выделите три столбца (зажмите Shift)
Вкладка Добавление столбца - Объединить столбцы
Выберите Пользовательский разделитель
Важно: используйте разделитель, которого нет в данных (например, -- двойной дефис)
Нажмите ОК, затем удалите другие столбцы (правая кнопка - Удалить другие столбцы)
2.5 Обратное транспонирование
Вкладка Преобразование - Транспонировать
Теперь столбец превратился в строку — работа с заголовками завершена
Шаг 3: Работа с данными (второй этап)
3.1 Возврат к исходным данным
Важный приём Power Query — работа с шагами:
Перейдите к последнему шагу в истории
В строке формул нажмите f(x) - Добавить шаг
Замените ссылку на Источник (название шага с полными данными). У вас это может быть другое название. Важно, чтобы вы выбрали именно тот шаг, на котором была полная таблица.
Соблюдайте регистр! Power Query чувствителен к заглавным буквам
3.2 Удаление строк заголовков
Вкладка Главная - Удалить строки - Удалить верхние строки
Удалите 3 строки (заголовки)
Отфильтруйте строку «Итого»: правая кнопка - Текстовые фильтры - Не содержит - Итого
3.3 Разделение столбца «Регион + Продукт»
Создаём два столбца из одного:
Выделите столбец Column1
Вкладка Добавление столбца - Условный столбец
Логика: Если Column1 не содержит Продукт то Column1
Нажмите ОК
Теперь заполните столбец вниз:
Выделяем столбец. Вкладка Преобразование - Заполнить - Заполнить вниз
3.4 Удаление строк «Итого» через чередование
Если структура фиксирована (регион + 4 продукта или что-то в этом роде):
Вкладка Главная - Удалить строки - Удалить чередующиеся строки
Первая строка для удаления: 1
Количество строк для сохранения: 4
Power Query будет: удалять 1 строку, сохранять 4, удалять 1, сохранять 4... и так до конца документа
Если структура таблицы не позволяет так сделать, то можно пойти через банальную фильтрацию данных и убрать те строки, в которых содержатся промежуточные итоги.
Шаг 4: Объединение этапов и финальная обработка
4.1 Конкатенация (объединение) двух таблиц
Объединяем таблицу заголовков и таблицу данных:
Перейдите к последнему шагу
Нажмите f(x) → Добавить шаг
В строке формул: =#"Удалённые чередующиеся строки" & #"Транспонированная таблица"
Используйте амперсанд (&) для конкатенации
4.2 Повышение заголовков
Нажмите кнопку слева: Использовать первую строку в качестве заголовков
Переместите столбец Регион в начало (перетащите)
Переименуйте столбцы: Продукт, Регион
4.3 Магия Unpivot (отменить свёртывание столбцов)
Ключевой шаг всей операции:
Выделите столбцы Регион и Продукт (которые нужно оставить как есть). Это те столбцы, которые разворачивать не нужно.
Правая кнопка мыши по любому выделенному столбцу - Отменить свёртывание других столбцов
Теперь показатели превратились в строки
4.4 Разделение столбца с показателем
Выделите объединённый столбец
Вкладка Преобразование - Разделить столбец По разделителю
Пользовательский разделитель: -- (тот же, что использовали ранее)
Нажмите ОК
4.5 Настройка типов данных
Выделите текстовые столбцы - иконка текста
Последнему столбцу (значения) - тип Десятичное число (или тот формат, который вам нужен)
Проверьте, чтобы все типы соответствовали ожидаемым данным
Шаг 5: Выгрузка обратно в Excel
Файл - Закрыть и загрузить в...
Выберите Таблица - на существующий лист
Укажите ячейку (например, J1)
Нажмите ОК
Повторное использование запроса для новых данных
Если приходит похожая таблица (новая неделя, другие регионы/продукты):
В Excel откройте Данные - Запросы и подключения
В запросе измените шаг Источник: вместо Данные напишите Данные_новые (предварительно присвоив диапазону с новой таблицей такое имя)
Нажмите Enter
Выгрузите данные обратно в Excel
Готово! Все шаги применятся автоматически
Если меняется структура таблицы
Если количество продуктов различается (где-то 3, где-то 4) или ещё какая-то логика таблицы меняется, то нужно в запросе изменить/удалить нужный шаг. Например:
Удалите шаг «Удалённые чередующиеся строки»
Вместо этого используйте фильтр: правая кнопка - Текстовые фильтры - Не содержит - Итого
Power Query запомнит новый шаг
Преимущества подхода: что вы получаете
Плоская таблица: можно строить сводные таблицы
Наглядный анализ: сравнивать план/факт по продукту, региону, показателю в сводной
Автоматизация: один раз настроил — используешь бесконечно
Быстрое обновление: поправил данные в источнике - правой кнопкой мыши по любой ячейке таблицы - Обновить
Заключение
Получилось много букв и картинок, но таков путь. Решение не унифицированное: у вас может быть другое количество строк заголовков, другая структура таблицы и так далее. Но главное, это понять суть того, как мы можем сделать это в Power Query. На самом деле, проделав это пару раз, поняв логику своей таблицы и решения, в дальнейшем вы очень сильно упрощаете и ускоряете работу с такими вот чудесными таблицами. Спасибо всем, кто осилил мою простыню :) Искренне надеюсь, что кому-то было полезно.






































































