Как я уже писал, с Power Query, доступным в Excel 2010+, все относительно просто. Это займет больше времени, чтобы набрать шаги, а затем создать его: -).
Все можно сделать из пользовательского интерфейса
- Удалить столбцы
Scene
и Video
- Разделение столбца
Cast
по разделителю comma
- Выберите столбцы
Location
и Cast
и Transform/Trim
для удаления ненужных пробелов - Выберите все три столбца и
Remove Rows/Duplicates
Group By
Recording Block
Operation:= All Rows
Добавить пользовательский столбец для расположений: Формула =
List.Distinct(Table.Column([Grouped],"Location"))
- запишите имя нового столбца в диалоговое окно
Добавить еще один пользовательский столбец для Cast: Formula =
List.Distinct(Table.Column([Grouped],"Cast"))
Следует отметить, что эту рабочую книгу можно сохранить в виде файла xlsx
.
Для интереса, здесь сгенерирован M-код.
M код
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Video", Int64.Type}, {"Scene", Int64.Type}, {"Location", type text}, {"Cast", type text}, {"Recording Block", type text}}),
#"Removed Columns" = Table.RemoveColumns(#"Changed Type",{"Video", "Scene"}),
#"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(#"Removed Columns", {{"Cast", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Cast"),
#"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Cast", type text}}),
#"Trimmed Text" = Table.TransformColumns(#"Changed Type1",{{"Cast", Text.Trim, type text}, {"Location", Text.Trim, type text}}),
#"Removed Duplicates" = Table.Distinct(#"Trimmed Text"),
#"Grouped Rows" = Table.Group(#"Removed Duplicates", {"Recording Block"}, {{"Grouped", each _, type table [Location=text, Cast=text, Recording Block=text]}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Locations", each List.Distinct(Table.Column([Grouped],"Location"))),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Cast", each List.Distinct(Table.Column([Grouped],"Cast"))),
#"Extracted Values" = Table.TransformColumns(#"Added Custom1", {"Cast", each Text.Combine(List.Transform(_, Text.From), ", "), type text}),
#"Extracted Values1" = Table.TransformColumns(#"Extracted Values", {"Locations", each Text.Combine(List.Transform(_, Text.From), ", "), type text})
in
#"Extracted Values1"