Showing results for 
Search instead for 
Did you mean: 
Helper II
Helper II

M Code Recursive function dynamic column reference

I would like to try dynamic expanding columns in M code.


The code is:

fxFactorial = (RowCount as number, Tnumber as number, tbl as table) =>
displayname = "disPath" & Text.From(Tnumber),
childrenname = "children" & Text.From(Tnumber),
prevchildname = "children" & Text.From(Tnumber-1) ,
prevstep = tbl ,
Source2 = Table.ExpandListColumn( prevstep, prevchildname),
#"Added disPath2" = Table.AddColumn(Source2, displayname, each Record.Field(prevchildname,"displayPath") ),
#"Added children2" = Table.AddColumn(#"Added disPath2", childrenname, each try Record.Field([children1],"children") otherwise null ),
ColRowCount = List.NonNullCount( #"Added children2"[children2]),
titlenumber = Tnumber + 1,
subresult = if titlenumber > 2 then @fxFactorial(ColRowCount, titlenumber, #"Added children2") else #"Added children2"
#"Added disPath2"


But, I'm getting an error stating like We cannot convert the value "children1" to Record



Much appreciated it if someone showed some light on this query.

Super User
Super User

You are using the prevchildname variable (a text value) in a function that expects a record (Record.Field).



Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.

@mahoneypa HoosierBI on YouTube

Helpful resources

UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!

November Power BI Update 768x460.png

Check it Out!

Click here to read more about the November 2021 Updates!

M365 768x460.jpg

Microsoft 365 Collaboration Conference | December 7–9, 2021

Join us, in-person, December 7–9 in Las Vegas, for the largest gathering of the Microsoft community in the world.