Даты в столбцах: как преобразовать отчёт продаж в Power Query
Как превратить месяцы из столбцов в строки Power Query: сохранить SKU, отделить итоги, проверить пропуски и нули, учесть новые месяцы при обновлении.
Содержание статьи
Коротко о главном
Если в отчёте каждому месяцу отведён отдельный столбец, выделите постоянные поля товара и примените в Power Query команду «Отменить свёртывание других столбцов». Получится таблица, где период и значение находятся в отдельных полях. До преобразования уберите служебные итоги, сохраните артикулы как текст и разберите пропуски; после — сверьте количество значений и суммы по каждому периоду.
- Unpivot превращает заголовки периодов в значения одного столбца, сохраняя связь с товаром.
- Поля SKU, кабинета и других постоянных признаков нужно оставить вне разворота.
- Null и ноль имеют разный смысл: пропуск нельзя автоматически объявлять отсутствием продаж.
- Новый месяц должен попасть в результат обновления, а новый служебный столбец — пройти отдельную проверку.
1. Определите, какой должна стать одна строка
Широкая таблица удобна для быстрого просмотра: слева SKU, справа январь, февраль и март. Для сравнения периодов такая форма неудобна: каждый новый месяц меняет набор столбцов. В длинной таблице одна строка описывает один товар за один период, а названия полей остаются прежними: «SKU», «Период», «Продано, шт.».
Microsoft Learn называет это преобразованием в пары Attribute–Value: исходный заголовок становится атрибутом, содержимое ячейки — значением. Это не транспонирование всей таблицы. Постоянные признаки товара повторяются рядом с его периодами, поэтому связь с SKU сохраняется.
Ниже рассматривается подготовленная таблица с одним показателем — количеством проданных единиц за месяц. Это учебная структура, а не обещание конкретного формата выгрузки WB или Ozon. Если рядом находятся продажи в штуках, выручка в рублях и доля возвратов, сначала разделите показатели: складывать их в одно числовое поле нельзя.
2. Подготовьте идентификаторы и исключите итоги
Работайте с копией исходника. В редакторе Power Query проверьте заголовки и отделите постоянные поля: площадку, кабинет, SKU и вариант товара, если без него код неоднозначен. Один SKU в разных кабинетах не должен становиться одним товаром только из-за совпадения текста.
Сохраните SKU как «Текст» до любого числового преобразования. В документации Data types Microsoft указывает, что для Excel и CSV типы могут определяться автоматически. Проверьте шаг «Изменённый тип» и исходный код 00127: если нули уже потеряны, назначение текста не вернёт их. Возвращайтесь к неповреждённому источнику.
Строку «Итого по магазину» и столбец «Всего за период» сохраните отдельно для сверки, затем исключите из рабочей таблицы до разворота. Например, 10 и 15 штук по месяцам плюс итог 25 дадут ложные 50 штук, если итог обработать как ещё один месяц. Промежуточные итоги по брендам требуют того же решения.
3. Превратите столбцы месяцев в строки
Команды ниже относятся к редактору Power Query в Excel; язык и расположение элементов зависят от версии. Откройте подготовленный запрос на редактирование. В Microsoft Support описан путь Transform → Unpivot Other Columns: преобразуются все поля, кроме выделенных.
После операции проверьте несколько строк вручную. Для SKU 00127 значение января должно остаться январским значением именно этого товара. Разворот не проверяет смысл выбранных полей: ошибка в выделении способна превратить название бренда или кабинет в содержимое столбца продаж.
- С зажатой Ctrl выделите все постоянные поля, например «Кабинет» и «SKU». Месяцы не выделяйте.
- Выберите «Преобразование → Отменить свёртывание других столбцов» / Transform → Unpivot Other Columns.
- Переименуйте Attribute / «Атрибут» в «Период», Value / «Значение» — в «Продано, шт.».
- Оставьте SKU текстовым. Для количества целых единиц задайте «Целое число» и проверьте ошибки.
- Убедитесь, что в «Период» попали только согласованные месяцы, а не «Итого», «Комментарий» или другой признак.
4. Проверьте результат на маленьком примере
Возьмём два товара одного кабинета. Для 00127 в июне продано 12 штук, в июле — 0, в августе — 9. Для 00408 значения равны 5, неизвестно и 7. Неизвестное значение после импорта представлено именно null. Это придуманный учебный набор; заголовки 2026-06, 2026-07 и 2026-08 обозначают месяцы целиком.
В результате разворота ожидаются пять строк из таблицы ниже. Из шести товарно-месячных ячеек одна содержит null. В официальном примере Table.Unpivot Microsoft значения null не создают выходных пар. Нулевая июльская продажа 00127 при этом остаётся отдельной строкой.
Контроль известного количества: 12 + 0 + 9 + 5 + 7 = 33 штуки. По июню — 17, по июлю известно 0 только для одного товара, по августу — 16. Называть июльский итог магазина нулём нельзя: значение второго товара ещё не получено. Совпадение общей суммы 33 не доказывает полноту данных.
| SKU, текст | Период | Продано, шт. |
|---|---|---|
| 00127 | 2026-06 | 12 |
| 00127 | 2026-07 | 0 |
| 00127 | 2026-08 | 9 |
| 00408 | 2026-06 | 5 |
| 00408 | 2026-08 | 7 |
5. Сохраните видимость отсутствующих данных
До разворота составьте отдельный список пропусков: кабинет, SKU, период и причина, если она известна. Для небольшого набора достаточно контрольной таблицы. После разворота отсутствие строки само по себе уже не расскажет, был ли там null, не существовал ли товар или период вообще не входил в источник.
Ноль означает подтверждённое значение показателя. Null означает отсутствие значения в таблице; его бизнес-причину нужно выяснить. Пустая строка, пробел, тире и ошибка преобразования — другие исходные состояния. Не заменяйте их все на ноль одним действием. Например, знак «—» может означать, что показатель ещё не рассчитан.
Если дальнейший отчёт требует каждую комбинацию SKU и месяца, подготовьте полный перечень ожидаемых пар и явно пометьте неполные. Это дополнительная задача контроля покрытия. Для текущего примера достаточно сохранить шестую пару в журнале исключений и считать июль неполным до выяснения причины.
6. Проверьте появление нового месяца
Для таблицы с постоянными реквизитами и растущим числом месяцев удобна команда Unpivot Other Columns. Microsoft Learn подтверждает, что новые столбцы тоже попадут в разворот. Команда Unpivot Only Selected Columns ведёт себя иначе: разворачивает указанный набор, а новый столбец оставляет отдельно. Не выбирайте её для автоматического добавления месяцев без дальнейшего изменения запроса.
Автоматическое включение полезно только при контролируемой схеме. Если поставщик файла добавит «Комментарий», этот столбец тоже окажется среди разворачиваемых. Перед обновлением сравнивайте заголовки с ожидаемой структурой: каждый новый столбец должен быть периодом того же показателя или явно защищённым постоянным полем.
В копии учебного источника добавьте сентябрь: 3 штуки для 00127 и 4 для 00408. Проверьте, что новый столбец входит в подключённую таблицу, а более ранние шаги запроса его не отбрасывают. После обновления ожидаются семь строк, известная сумма 40 штук и тот же один нерешённый июльский пропуск. Сам факт успешного обновления этих проверок не заменяет.
7. Примите отчёт перед анализом
Сверьте в загруженном результате сумму каждого месяца с исходным столбцом, известную сумму каждого SKU и число непустых ячеек. Для выбранной схемы одна пара «кабинет × SKU × месяц» должна встречаться один раз. Если исходник содержит отдельные склады или варианты, добавьте эти признаки в определение строки, прежде чем считать повтор ошибкой.
Сохраните период с годом: одного слова «январь» недостаточно для нескольких лет. Если далее нужен календарный тип, назначьте однозначную дату начала месяца по принятому правилу и сохраните смысл месячного показателя. Преобразование заголовка в дату не превращает месячные продажи в продажи за первый день.
После сверки можно сравнивать периоды и товары во «Внутренней аналитике WB и Ozon» HelpStat и выбирать изменения, требующие отдельного разбора. Описанный разворот отчёта выполняется в Excel и Power Query; здесь не предполагаются загрузка такой таблицы в HelpStat или встроенный в сервис Power Query.
- Итоговые строки и столбцы исключены из фактов, но сохранены для контроля.
- SKU совпадают с оригиналом, включая ведущие нули.
- Число строк объясняется количеством известных ячеек, а не числом товаров.
- Все пропуски и ошибки остаются видимыми; нули сохранены как значения.
- Новый месяц прошёл контроль заголовка, строк и суммы после обновления.
Источники и методика
Источники ниже помогают проверить определения и возможности отчётов. Методика разбора и учебные расчёты подготовлены редакцией HelpStat. Доступность отчётов и условия работы проверяйте в своём кабинете. Расчётные примеры в статье — учебные, а не результаты клиентов.
Как устроены материалы HelpStat
- Microsoft Learn: Unpivot columns и поведение при новых столбцах
- Microsoft Support: команды отмены свёртывания в Excel
- Microsoft Learn: Table.Unpivot, пример с null
- Microsoft Learn: типы данных и автоматическое определение
Материал отражает сведения на указанную дату. Правила и условия работы площадок могут измениться. Редакционные принципы