Это можно сделать в Power Query несколькими щелчками мыши.
Пожалуйста, обратитесь к этой статье , чтобы узнать, как использовать Power Query в вашей версии Excel.Он доступен в Excel 2010 Professional Plus и более поздних версиях .Моя демонстрация использует Excel 2016 .
Шаги:
- Добавьте исходную таблицу в Power Query Editor .Вы заметите, что объединенные ячейки «не объединены» автоматически;
Щелкните правой кнопкой мыши заголовок первого столбца и перейдите к
Заполнить , затем выберите
Down
;
Используйте функцию
Объединить столбцы на вкладке
Transform
, чтобы объединить первые два столбца со стандартным разделителем, таким как точка с запятой
;
;
Используйте
Unpivot Columns на вкладке
Transform
, чтобы отменить все остальные столбцы, кроме объединенного, затем вам нужно следующее:
Используйте функцию
Разделить столбец на вкладке
Transform
, чтобы разделить объединенный столбец, используя тот же разделитель, что и на шаге 3;
Pivot первого столбца и выберите
Value
для столбца значений;
Измените формат столбца
Attribute
на
целое число , затем отсортируйте этот столбец по возрастанию, а затем отсортируйте также первый столбец по возрастанию;
Переименуйте и переставьте столбцы по желанию, а затем
Закройте и загрузите таблицу на новый лист (по умолчанию).
Обратите внимание, что первый столбец выходной таблицы не объединен.Вы не можете вручную объединить их в таблицу .Поскольку эта таблица связана с исходной таблицей, если вы собираетесь внести какие-либо изменения в исходные данные, вы можете просто обновить выходную таблицу, чтобы получить обновленный результат, как показано ниже:
Здесь приведены Power Query M Codes за сценой только для справки.На всех этапах используются функции built-in
редактора, что довольно просто.
let
Source = Excel.CurrentWorkbook(){[Name="Table3"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Names", type text}, {"Date", type text}, {"1", Int64.Type}, {"2", Int64.Type}, {"3", Int64.Type}, {"4", Int64.Type}, {"5", Int64.Type}, {"6", Int64.Type}, {"7", Int64.Type}, {"8", Int64.Type}, {"9", Int64.Type}, {"10", Int64.Type}}),
#"Filled Down" = Table.FillDown(#"Changed Type",{"Names"}),
#"Merged Columns" = Table.CombineColumns(#"Filled Down",{"Names", "Date"},Combiner.CombineTextByDelimiter(";", QuoteStyle.None),"Merged"),
#"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Merged Columns", {"Merged"}, "Attribute", "Value"),
#"Split Column by Delimiter" = Table.SplitColumn(#"Unpivoted Columns", "Merged", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), {"Merged.1", "Merged.2"}),
#"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Merged.1", type text}, {"Merged.2", type text}}),
#"Pivoted Column" = Table.Pivot(#"Changed Type1", List.Distinct(#"Changed Type1"[Merged.1]), "Merged.1", "Value", List.Sum),
#"Changed Type2" = Table.TransformColumnTypes(#"Pivoted Column",{{"Attribute", Int64.Type}}),
#"Sorted Rows" = Table.Sort(#"Changed Type2",{{"Attribute", Order.Ascending}, {"Merged.2", Order.Ascending}}),
#"Reordered Columns" = Table.ReorderColumns(#"Sorted Rows",{"Attribute", "Merged.2", "Rahul", "Akash", "Sumit", "Mohan", "Rathod", "Nikhil"}),
#"Renamed Columns" = Table.RenameColumns(#"Reordered Columns",{{"Attribute", "Date"}, {"Merged.2", "Names"}})
in
#"Renamed Columns"
Дайте мне знать, если у вас есть какие-либо вопросы.Ура :) 1126 *