Статьи по Excel

Unpivot (анпивот, отмена свертывания) в Excel

Формулы Сводные таблицы
Анпивот (Unpivot) — отмена свертывания, преобразование двумерной таблицы в плоскую, пригодную для построения сводной таблицы.

Эту операцию можно проделать в Power Query или формулами. Но функции для решения задачи формулой есть только в новой версии Excel, так что начнем с доступной PQ.

Power Query

— Данные — «Из таблицы/диапазона» (выделяем предварительно исходную таблицу, любую ее ячейку):
— Выделяем в редакторе Power Query те столбцы, которые должны остаться в новой таблице — в нашем примере это «Компания».
— Преобразование — Отменить свертывание других столбцов (Transform — Unpivot Other Columns):
Получим такую картинку:
Столбцы «Атрибут» и «Значение» можно переименовать. Для этого достаточно кликнуть по ним дважды и ввести новое название.
Остается отправить полученное добро обратно в Excel — в виде таблицы или сводной. Закрыть и загрузить в… (Close & Load To…):
И выбрать нужный вариант, например, таблицу:
И вот она на листе Excel:
Новые формулы
Если у вас Microsoft 365, можно решить задачу формулами, используя новые функции.
На первом шаге используем функцию EXPAND / РАЗВЕРНУТЬ: она добавляет к массиву с названиями компаний (первому столбцу, который останется неизменным) два лишних пустых столбца, заполненных ошибкой. То есть мы просто увеличиваем размер массива. Данные остаются на месте, а «новые» значения отображаются как #Н/Д:
=РАЗВЕРНУТЬ (первый столбец;;количество других столбцов)

Количество столбцов вычисляем с помощью функции СЧЁТЗ / COUNTA:
=РАЗВЕРНУТЬ (Данные[Компания];;СЧЁТЗ (Данные[[#Заголовки];[Курс]:[Электронная библиотека]]))
На втором шаге заменяем эти пустоты (ошибки) на исходные данные с помощью ЕСНД / IFNA (функции, которая заменяет ошибки Н/Д на второй свой аргумент). Иначе говоря, мы клонируем каждое название компании три раза (по числу столбцов с данными).
=ЕСНД(РАЗВЕРНУТЬ(первый столбец;;количество других столбцов); первый столбец)
На третьем шаге делаем этот массив плоским с функцией ПОСТОЛБЦ / TOCOL:
=ПОСТОЛБЦ (ЕСНД (РАЗВЕРНУТЬ (первый столбец;;количество других столбцов); первый столбец))
На финальном шаге к этому столбцу справа надо прибавить еще два: с названиями продуктов и с собственно данными. Продукты надо, как мы и делали с компаниями, РАЗВЕРНУТЬ с помощью одноименной функции, размножить и сделать плоским с помощью ПОСТОЛБЦ:
С данными (суммами) проще — там ничего не нужно клонировать, просто сделать плоским:
И вот у нас три столбца: с названиями компаний (первый столбец из исходной таблицы, но каждое значение из него мы повторили столько раз, сколько у нас столбцов в исходной таблице) + с названиями продуктов (каждое название тоже повторили) + суммы, которые мы превратили в одномерный массив. Собираем все это в одну таблицу функцией ГСТОЛБИК / HSTACK, которая объединяет массивы горизонтально: