Forum Discussion
moizsherwani
Continued Contributor
7 years agoParent-Child Hierarchy - Highest Parent (using Power Query not DAX)
Hello PBI Forum, So my issue is as follow, I have a parent child relationship as given below and I need (within Power Query and not DAX) a way to find out the highest parent of any child Team...
- 7 years ago
you just need to change the data types then like this:
let Source = Excel.CurrentWorkbook(){[Name="Hierarchy"]}[Content], ChangedType = Table.TransformColumnTypes(Source,{{"Team ID", type text}, {"Parent ID", type text}}), ListTeamID = List.Buffer( ChangedType[Team ID] ), ListParentID = List.Buffer( ChangedType[Parent ID] ), fnGetHighestParent = (n as text) as text => let PosOfParent = List.PositionOf( ListTeamID, n ), ParID = ListParentID{PosOfParent} in if ParID = null then ListTeamID{PosOfParent} else @fnGetHighestParent(ListParentID{PosOfParent}), FinalTable = Table.AddColumn( ChangedType, "HighestParent", each fnGetHighestParent( [Team ID] ), type text) in FinalTable
LivioLanzo
Solution Sage
7 years agoyou just need to change the data types then like this:
let
Source = Excel.CurrentWorkbook(){[Name="Hierarchy"]}[Content],
ChangedType = Table.TransformColumnTypes(Source,{{"Team ID", type text}, {"Parent ID", type text}}),
ListTeamID = List.Buffer( ChangedType[Team ID] ),
ListParentID = List.Buffer( ChangedType[Parent ID] ),
fnGetHighestParent = (n as text) as text =>
let
PosOfParent = List.PositionOf( ListTeamID, n ),
ParID = ListParentID{PosOfParent}
in
if ParID = null then ListTeamID{PosOfParent} else @fnGetHighestParent(ListParentID{PosOfParent}),
FinalTable = Table.AddColumn( ChangedType,
"HighestParent",
each fnGetHighestParent( [Team ID] ),
type text)
in
FinalTableiBusinessBI
Kudo Collector
3 years agoLivioLanzo Awesome, thank you!