Excel: Excel нуб здесь. Массовая транспонирование. Создайте отдельную строку компании для каждого контакта в компании. - PullRequest
0 голосов
/ 15 октября 2019

enter image description here Прямо сейчас ... мои данные отформатированы так:

Это изображение намного лучше объясняет мою текущую ситуацию.

Первые четыре строки данных - это то, как мы сейчас настроены.

Строки с семи по восемнадцать демонстрируют, как мы хотим, чтобы наши данные заканчивались!

Какой путь я мог бы выбрать, чтобы реорганизовать наши данные как таковые?

Еще раз спасибо!

1 Ответ

1 голос
/ 16 октября 2019

Пожалуйста, обратитесь к этой статье , чтобы узнать, как использовать Power Query в вашей версии Excel. Он доступен в Excel 2010 Professional Plus и более поздних версиях . Моя демонстрация использует Excel 2016 .

Шаги:

  1. Использование из таблицы функция на вкладке Data, чтобы добавить свои данные(столбцы с N по Y) в редактор запросов питания;
  2. Используйте функцию Объединить столбцы на вкладке Transform, чтобы объединить каждую группу контактов (Name, Position, Email) через точку с запятой ;. В конце этого упражнения вы должны иметь объединенные столбцы 8 (некоторые столбцы могут содержать пустые ячейки, что хорошо), как показано ниже;

Merge Columns

Выделите все объединенные столбцы, используйте Unpivot Columns на вкладке Transform, чтобы отключить эти столбцы, затем удалите столбец Attribute, тогда у вас должно получиться что-то вроде ниже;

Unpivot Columns

Выделите столбец Value, используйте функцию Разделить столбцы на вкладке Transform, чтобы разделить столбец точкой с запятой ;;

Split Columns

Переименуйте столбцы по желанию, а затем отфильтруйте второй столбец (который должен быть столбцом имени контакта), чтобы скрыть пробелы; Закройте и загрузите запрос на новый лист (по умолчанию)

Result

Вот запрос мощности M кодов для справки. На всех этапах используются встроенные функции без расширенного кодирования, поэтому они должны быть простыми и понятными. Дайте знать, если у вас появятся вопросы. Ура:)

let
    Source = Excel.CurrentWorkbook(){[Name="Table3"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Co Name", type text}, {"Contact1", type text}, {"Pos1", type text}, {"Email1", type text}, {"Contact2", type text}, {"Pos2", type any}, {"Email2", type text}, {"Contact3", type text}, {"Pos3", type any}, {"Email3", type text}, {"Contact4", type text}, {"Pos4", type text}, {"Email4", type text}, {"Contact5", type text}, {"Pos5", type text}, {"Email5", type text}, {"Contact6", type text}, {"Pos6", type text}, {"Email6", type text}, {"Contact7", type text}, {"Pos7", type text}, {"Email7", type text}, {"Contact8", type text}, {"Pos8", type text}, {"Email8", type text}}),
    #"Merged Columns" = Table.CombineColumns(#"Changed Type",{"Contact1", "Pos1", "Email1"},Combiner.CombineTextByDelimiter(";", QuoteStyle.None),"Merged"),
    #"Merged Columns1" = Table.CombineColumns(Table.TransformColumnTypes(#"Merged Columns", {{"Pos2", type text}}, "en-AU"),{"Contact2", "Pos2", "Email2"},Combiner.CombineTextByDelimiter(";", QuoteStyle.None),"Merged.1"),
    #"Merged Columns2" = Table.CombineColumns(Table.TransformColumnTypes(#"Merged Columns1", {{"Pos3", type text}}, "en-AU"),{"Contact3", "Pos3", "Email3"},Combiner.CombineTextByDelimiter(";", QuoteStyle.None),"Merged.2"),
    #"Merged Columns3" = Table.CombineColumns(#"Merged Columns2",{"Contact4", "Pos4", "Email4"},Combiner.CombineTextByDelimiter(";", QuoteStyle.None),"Merged.3"),
    #"Merged Columns4" = Table.CombineColumns(#"Merged Columns3",{"Contact5", "Pos5", "Email5"},Combiner.CombineTextByDelimiter(";", QuoteStyle.None),"Merged.4"),
    #"Merged Columns5" = Table.CombineColumns(#"Merged Columns4",{"Contact6", "Pos6", "Email6"},Combiner.CombineTextByDelimiter(";", QuoteStyle.None),"Merged.5"),
    #"Merged Columns6" = Table.CombineColumns(#"Merged Columns5",{"Contact7", "Pos7", "Email7"},Combiner.CombineTextByDelimiter(";", QuoteStyle.None),"Merged.6"),
    #"Merged Columns7" = Table.CombineColumns(#"Merged Columns6",{"Contact8", "Pos8", "Email8"},Combiner.CombineTextByDelimiter(";", QuoteStyle.None),"Merged.7"),
    #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Merged Columns7", {"Co Name"}, "Attribute", "Value"),
    #"Removed Columns" = Table.RemoveColumns(#"Unpivoted Columns",{"Attribute"}),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Removed Columns", "Value", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), {"Value.1", "Value.2", "Value.3"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Value.1", type text}, {"Value.2", type text}, {"Value.3", type text}}),
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type1",{{"Value.1", "Contact"}, {"Value.2", "Position"}, {"Value.3", "Email"}}),
    #"Filtered Rows" = Table.SelectRows(#"Renamed Columns", each ([Contact] <> ""))
in
    #"Filtered Rows"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...