Перед загрузкой в PowerQuery вставьте строку в таблицу исключений и объедините заголовки в столбцах значений, используя разделитель.Вы можете использовать функцию TEXTJOIN, чтобы сделать это, если вы используете office365.Результат выглядит примерно так (я не копировал все ваши данные):
Импортируйте эту таблицу в PowerQuery и выполните следующие шаги:
- Удалить верхние 3 строки
- Использовать первую строку в качестве заголовков
- Выбрать первые 3 столбца
- Отменить поворот других столбцов (раскрывающееся меню
unpivot columns
при преобразованииВкладка) - Выбрать столбец [Атрибут]
- Разделить столбец по разделителю (точка с запятой)
Сценарий выглядит следующим образом.
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}, {"Column3", type text}, {"Column4", type any}, {"Column5", type any}}),
#"Removed Top Rows" = Table.Skip(#"Changed Type",3),
#"Promoted Headers" = Table.PromoteHeaders(#"Removed Top Rows", [PromoteAllScalars=true]),
#"Changed Type1" = Table.TransformColumnTypes(#"Promoted Headers",{{"Column1", type text}, {"Column2", type text}, {"Column3", type text}, {"Actual;jun;FY-2017", Int64.Type}, {"Actual;jul;FY-2017", Int64.Type}}),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Changed Type1", {"Column1", "Column2", "Column3"}, "Attribute", "Value"),
#"Split Column by Delimiter" = Table.SplitColumn(#"Unpivoted Other Columns", "Attribute", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), {"Attribute.1", "Attribute.2", "Attribute.3"}),
#"Changed Type2" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Attribute.1", type text}, {"Attribute.2", type text}, {"Attribute.3", type text}})
in
#"Changed Type2"
Результат: