Добрый день. Прошу помощи. Необходимо решить задачку: имеются столбцы с указанием элемента и с каким элементом он связан (в примере это столбцы 1 и 2). Нужно получить результат (столбец 3) - элемент A связан с B, B связан с C, С c D, E с A. I связан с J, J с B, поэтому результат такой связки должен быть A,B,C,D,E,I,J. F,G,H соответственно связаны только друг с другом. Заранее спасибо за помощь
Добрый день. Прошу помощи. Необходимо решить задачку: имеются столбцы с указанием элемента и с каким элементом он связан (в примере это столбцы 1 и 2). Нужно получить результат (столбец 3) - элемент A связан с B, B связан с C, С c D, E с A. I связан с J, J с B, поэтому результат такой связки должен быть A,B,C,D,E,I,J. F,G,H соответственно связаны только друг с другом. Заранее спасибо за помощьUnforcer
let
from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
nms = Table.ColumnNames(from),
cmb = Table.Distinct(from & Table.RenameColumns(from,List.Zip({nms,List.Reverse(nms)}))),
grp = Table.Group(cmb, "Точки1", {"Value", each [Точки2]}),
lst=List.Buffer(Table.ToList(grp,(x)=>{x{0}}&x{1})),
f=(x,y)=>List.Distinct(List.Combine(List.Select(y,(i)=>List.ContainsAny(i,x))&{x})),
g=(x,y)=>List.Select(y,(i)=>not List.ContainsAny(i,x)),
gen=List.Generate( ()=>[a=lst,b=a{0}?,c=f(b,a),d=g(c,a)],
(x)=>x[b]<>null,
(x)=>[a=x[d],b=a{0}?,c=f(b,a),d=g(c,a)],
(x)=>Text.Combine(x[c],","))
in
gen
может M подойдёт?
let
from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
nms = Table.ColumnNames(from),
cmb = Table.Distinct(from & Table.RenameColumns(from,List.Zip({nms,List.Reverse(nms)}))),
grp = Table.Group(cmb, "Точки1", {"Value", each [Точки2]}),
lst=List.Buffer(Table.ToList(grp,(x)=>{x{0}}&x{1})),
f=(x,y)=>List.Distinct(List.Combine(List.Select(y,(i)=>List.ContainsAny(i,x))&{x})),
g=(x,y)=>List.Select(y,(i)=>not List.ContainsAny(i,x)),
gen=List.Generate( ()=>[a=lst,b=a{0}?,c=f(b,a),d=g(c,a)],
(x)=>x[b]<>null,
(x)=>[a=x[d],b=a{0}?,c=f(b,a),d=g(c,a)],
(x)=>Text.Combine(x[c],","))
in
gen