Каждый месяц выгружать десять файлов, чистить их одинаковыми руками, склеивать ВПР-ами и молиться, что ничего не съехало — так выглядит боль половины аналитиков, живущих в Excel. Power Query убирает эту рутину: настраиваешь трансформацию один раз, дальше жмёшь «Обновить». Разберу, что это за инструмент и почему его стоит освоить раньше, чем следующую формулу.
Что такое Power Query и зачем он аналитику?
Power Query — встроенный в Excel (и в Power BI) редактор запросов к данным. По сути это полноценный ETL без кода: он подключается к источнику, применяет цепочку преобразований и отдаёт результат в таблицу.
Главное отличие от обычной работы в Excel — повторяемость. Когда вы чистите данные формулами и копипастом, весь труд одноразовый: пришёл новый файл — делаете всё заново. Power Query записывает каждый ваш шаг как рецепт. В следующем месяце вы подкладываете свежие данные, нажимаете «Обновить» — и весь пайплайн прогоняется автоматически, ровно теми же шагами.
Под капотом шаги пишутся на языке M, но 90% работы делается мышкой через меню, и код видеть необязательно.
Как собрать десятки файлов в одну таблицу?
Это моя любимая причина показывать Power Query новичкам, потому что экономия времени очевидна с первого раза. Есть папка с одинаковыми по структуре файлами (выгрузки по месяцам, по филиалам, по менеджерам). Обычный путь — открывать каждый и копировать вручную.
В Power Query выбираете «Получить данные из папки», указываете папку — и он сам читает все файлы и складывает их строки друг под друга в одну таблицу (это называется append). Добавили в папку новый файл за следующий месяц, нажали «Обновить» — он подтянулся сам. Никакого копипаста, никаких «забыл один файл».
Чем merge отличается от append?
Эти две операции постоянно путают, а разница простая и важная:
- Append (добавление) ставит таблицы одна под другую. Нужен, когда у таблиц одинаковые колонки, а вы хотите объединить строки: январь + февраль + март в один список.
- Merge (объединение) ставит таблицы бок о бок по ключу. Это прямой аналог
JOINв SQL и замена ВПР: у вас есть таблица заказов и отдельная таблица клиентов, вы подтягиваете имя клиента к каждому заказу поclient_id.
Merge к тому же честнее ВПР: он показывает тип соединения (левое, внутреннее, антисоединение) и не ломается, если поменять порядок колонок. Кто уже думает про SQL — это ровно та же логика, что я разбирал в гайде по JOIN; Power Query — хороший визуальный мостик к ней.
Как развернуть кросс-таблицу в длинный формат?
Классическая беда: данные пришли «широкими» — месяцы разнесены по колонкам (Январь, Февраль, Март...), а для сводных и графиков нужен «длинный» формат, где месяц — это одна колонка со значениями.
Руками это ад. В Power Query выделяете колонки-месяцы и жмёте «Отменить свёртывание столбцов» (unpivot) — таблица мгновенно превращается в аккуратные пары «месяц — значение». Обратная операция, pivot, тоже есть. Умение свободно гонять данные между широким и длинным форматом — базовый навык, который потом пригодится и в pandas (там это melt и pivot_table), и в SQL.
Почему Power Query лучше ручного ВПР?
Сведу к четырём пунктам, которые чувствуешь на практике:
- Повторяемость. ВПР надо переписывать под каждую новую выгрузку. Power Query-пайплайн обновляется одной кнопкой.
- Прозрачность. Все шаги видны списком справа — можно откатиться к любому, понять, что происходит, и передать коллеге. Стена из вложенных ВПР такого не даёт.
- Устойчивость. ВПР ломается, если вставить колонку или переименовать заголовок. Power Query привязывается к именам полей и переживает изменения структуры.
- Масштаб. ВПР на сотнях тысяч строк подвешивает Excel. Power Query обрабатывает такие объёмы спокойнее, потому что не держит формулу в каждой ячейке.
Где проходит граница применимости? Когда данных становятся миллионы строк или нужен ежедневный автоматический процесс — Excel упирается в потолок, и те же самые трансформации переносят на SQL. Хорошая новость: логика идентичная. Append — это UNION ALL, merge — это JOIN, unpivot — это разворот через UNION или CROSS JOIN. Освоив Power Query, вы уже думаете категориями ETL, и переход на SQL-тренажёр даётся заметно легче. А если хочется сразу в код — те же приёмы на pandas разбираются в Python-тренажёре и в справочнике pandas.