Ваши желаемые результаты не имеют смысла, учитывая ваши исходные данные.
В частности, у вас есть только два bbb123
в ваших данных, а aaa123
имеет два разных соответствия.
Если это связано с опечаткой, то, что вы хотите, можно легко сделать с помощью Power Query
aka Get&Transform
, который является частью версий Excel с 2010 года.
За исключением пользовательского столбца, большая часть приведенного ниже кода может быть сгенерирована автоматически из пользовательского интерфейса.
Алгоритм:
- Группировка данных по машине и учетной записи
-Это формирует таблицу сгруппированных «разрешений»
- Преобразование
table
в list
(это то, что делает пользовательский столбец)
- Расширить список, извлекая значения и используя запятую в качестве разделителя
- Удалить столбец, содержащий
table
s
Формула для пользовательского столбца : (Добавить столбец / пользовательский столбец из пользовательского интерфейса)
=Table.Column([Grouped],"permissions")`
М-код:
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"machine", type text}, {"account", type text}, {"permissions", type text}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"machine", "account"}, {{"Grouped", each _, type table}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each Table.Column([Grouped],"permissions")),
#"Extracted Values" = Table.TransformColumns(#"Added Custom", {"Custom", each Text.Combine(List.Transform(_, Text.From), ","), type text}),
#"Removed Columns" = Table.RemoveColumns(#"Extracted Values",{"Grouped"})
in
#"Removed Columns"
Исходные данные
![enter image description here](https://i.stack.imgur.com/enQ28.png)
Сгруппированные данные
![enter image description here](https://i.stack.imgur.com/j5wdi.png)