Вы можете преобразовать исходную таблицу в желаемый вывод, используя Power Query, доступный в Excel 2010 +
- На вкладке «Данные» выберите «Получить и преобразовать из таблицы / диапазона» (это может отличаться в разных версиях)
- Добавление столбца индекса.
- Выберите столбец индекса, а затем
UNPIVOT other columns
- Добавьте еще один столбец индекса с нулями
- Выберите этот новый индекс столбец, затем добавьте столбец Integer / Divide (by 2).
- Снова с тем же выбранным столбцом индекса добавьте столбец Modulo (by 2).
- Удалите столбец индекса с нулевым основанием, который вы добавили секунда.
- Выберите столбец Modulo и Pivot
- . Для столбца Значения выберите Значение (имя столбца по умолчанию со всеми данными
- Под
Advanced
, выберите вариант * 1024). *
- Удаление посторонних столбцов
- Переименование поворотных столбцов из
0 | 1
во что угодно (я оставил их в покое) - Сортировка строк по номеру колонки
все т Это можно сделать из пользовательского интерфейса, но ниже приведен код M , который вы можете просто вставить в расширенный редактор, если хотите. Вам нужно изменить имя таблицы источника, чтобы оно совпадало с тем, что есть в вашем Excel.
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", Int64.Type}, {"Column2", type text}, {"Column3", Int64.Type}, {"Column4", type text}, {"Column5", Int64.Type}, {"Column6", type text}, {"Column7", Int64.Type}, {"Column8", type text}}),
#"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 0, 1),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Added Index", {"Index"}, "Attribute", "Value"),
#"Removed Columns" = Table.RemoveColumns(#"Unpivoted Other Columns",{"Attribute"}),
#"Added Index1" = Table.AddIndexColumn(#"Removed Columns", "Index.1", 0, 1),
#"Inserted Integer-Division" = Table.AddColumn(#"Added Index1", "Integer-Division", each Number.IntegerDivide([Index.1], 2), Int64.Type),
#"Inserted Modulo" = Table.AddColumn(#"Inserted Integer-Division", "Modulo", each Number.Mod([Index.1], 2), type number),
#"Removed Columns1" = Table.RemoveColumns(#"Inserted Modulo",{"Index.1"}),
#"Pivoted Column" = Table.Pivot(Table.TransformColumnTypes(#"Removed Columns1", {{"Modulo", type text}}, "en-US"), List.Distinct(Table.TransformColumnTypes(#"Removed Columns1", {{"Modulo", type text}}, "en-US")[Modulo]), "Modulo", "Value"),
#"Removed Columns2" = Table.RemoveColumns(#"Pivoted Column",{"Index", "Integer-Division"}),
#"Sorted Rows" = Table.Sort(#"Removed Columns2",{{"0", Order.Ascending}}),
#"Changed Type1" = Table.TransformColumnTypes(#"Sorted Rows",{{"0", Int64.Type}, {"1", type text}})
in
#"Changed Type1"