创建幂双关系表

问题描述 投票:0回答:1

我有自动加载的下表

我需要以某种方式创建一个表,将各级零件号和组件关联起来,返回结果如下。

我希望能够查询给定的零件号并查看所有可能的组件和子组件

我尝试使用一些 dax 公式和编辑器本身,但我无法达到我的目标

powerbi dax
1个回答
0
投票

看看这是否有帮助

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Grouped Rows" = Table.Buffer(Table.Group(Source, {"Parent"}, {{"ImmediateChildren", each let a=_[Parent]{0} in List.Transform(_[Child], each a&":"&_), type table}})),
ParentList=List.Buffer(#"Grouped Rows"[Parent]),

Process =  (n as list) as list =>
    let children = List.Combine(List.Transform(List.Transform(n, each List.PositionOf(ParentList,Text.AfterDelimiter(_,":"))), each try #"Grouped Rows"{_}[ImmediateChildren] otherwise {})) 
    in  if List.Count(children)>0 then children & @Process (children) else children,

#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Children", each [ImmediateChildren] & Process([ImmediateChildren])),
#"Expanded Children" = Table.ExpandListColumn(#"Added Custom", "Children"),
#"Split Column by Delimiter" = Table.SplitColumn(#"Expanded Children", "Children", Splitter.SplitTextByDelimiter(":", QuoteStyle.Csv), {"LowerParent", "Child"}),
#"Merged Queries" = Table.NestedJoin(#"Split Column by Delimiter", {"LowerParent", "Child"},Source, {"Parent", "Child"}, "Merge", JoinKind.LeftOuter),
#"Expanded Merge" = Table.ExpandTableColumn(#"Merged Queries", "Merge", {"Qty"}, {"Qty"}),
#"Grouped Rows1" = Table.Group(#"Expanded Merge", {"Parent", "Child"}, {{"Qty", each List.Sum([Qty]), type number}}),
#"Sorted Rows" = Table.Sort(#"Grouped Rows1",{{"Parent", Order.Ascending}, {"Child", Order.Ascending}})
in  #"Sorted Rows"

© www.soinside.com 2019 - 2024. All rights reserved.