Сводные таблицы
Вы можете выполнить такое преобразование в Excel с помощью инструмента Power Query, но это не быстро и не очень удобно. Давайте попробуем другой подход к развертыванию сводных данных без Power Query.
Представьте, что нам нужно преобразовать некоторый набор данных из перекрестной таблицы в плоскую (Unpivot):
Такую задачу лучше решать с помощью макроса. Давайте напишем собственную процедуру, которая сможет переработать перекрестную таблицу (кросс-таблицу) с данными в формат обычной (плоской) таблицы, что позволит нам снова создавать сводные таблицы с измененными или дополненными данными.
Откройте редактор Visual Basic ( Сервис - Макрос - Редактор Visual Basic ), вставьте новый модуль
Sub UnPivotTable() 'moonexcel.com.ua Dim InVal As Variant Dim OutVal() As Variant Dim j, k, i As Long Dim NewSheet i = 1 InVal = Selection.Formula ReDim OutVal(1 To Selection.Count, 1 To 3) For j = 2 To UBound(InVal, 1) For k = 2 To UBound(InVal, 2) If InVal(j, k) <> "" Then OutVal(i, 1) = InVal(j, 1) OutVal(i, 2) = InVal(1, k) OutVal(i, 3) = InVal(j, k) i = i + 1 End If Next k Next j Set NewSheet = Worksheets.Add NewSheet.Range("A1").Resize(UBound(OutVal, 1), 3).Value = OutVal End Sub
После этого можно закрыть редактор VBA, вернуться в Excel, выделить исходную таблицу (полностью, с шапкой и первым столбцом со странами) и запустить наш макрос через меню Сервис - Макрос - Макросы
Макрос вставит в книгу новый лист и создаст на нем новый, реконструированный вариант выделенной таблицы. С такой таблицей можно работать "по полной программе", применяя весь арсенал средств Excel для обработки и анализа крупных таблиц.