Это похоже на работу. Может быть вставлен в PQ с помощью Home ... Advanced Editor ...
Принимает 3 столбца с заголовками ID , Группа , Значение in диапазон Таблица1
Дубликаты Группа * Столбец затем разбивает дубликат Группа на два отдельных столбца
Группировать данные по 3 позиции - Group.1 , Group.2 и Value ; затем добавляет Index , создавая, таким образом, совокупный счет каждого значения для этой комбинации групп
Объединяет всю таблицу на себя, но с Group.1 , совпадающими Group.2 и Group.2 , соответствующие Group.1
Расширяется. Все, что не совпадает, ... не соответствует и возвращает ноль
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Duplicated Column" = Table.DuplicateColumn(Source, "Group", "Groupx"),
#"Split Column by Delimiter" = Table.SplitColumn(#"Duplicated Column", "Groupx", Splitter.SplitTextByEachDelimiter({"-"}, QuoteStyle.Csv, false), {"Group.1", "Group.2"}),
#"Grouped Rows" = Table.Group(#"Split Column by Delimiter", {"Group.1", "Group.2","Value"}, {{"Count", each Table.AddIndexColumn(_, "Index",1,1), type table}}),
#"Expanded Count" = Table.ExpandTableColumn(#"Grouped Rows", "Count", {"Group", "ID", "Index"}, {"Group", "ID", "Index"}),
#"Merged Queries" = Table.NestedJoin(#"Expanded Count",{"Group.1", "Group.2", "Value", "Index"},#"Expanded Count",{"Group.2", "Group.1", "Value", "Index"},"Expanded Count",JoinKind.LeftOuter),
#"Expanded Expanded Count" = Table.ExpandTableColumn(#"Merged Queries", "Expanded Count", {"Index"}, {"Match"}),
#"Removed Columns" = Table.RemoveColumns(#"Expanded Expanded Count",{"Group.1", "Group.2", "Index"}),
#"Sorted Rows" = Table.Sort(#"Removed Columns",{{"ID", Order.Ascending}})
in #"Sorted Rows"