Forum Discussion
andres_montanag
3 years agoFrequent Visitor
pass a column name as variable
Hi guys, I need your knowledge 😄
I am trying to pass the name of a column as a variable to create a table from a custom function.
this M code work:
(tabla as table, fecha as date, name as text) =>
let
nameColumn = "Full Name",
Origen = tabla,
#"Filtro" = Table.SelectRows(Origen, each ( [Full Name] = name) and ( [Created Date] = fecha))
in
#"Filtro"
but I would like something like this:
(tabla as table, fecha as date, name as text,nameColumn) =>
let
Origen = tabla,
#"Filtro" = Table.SelectRows(Origen, each ( [nameColumn] = name) and ( [Created Date] = fecha))
in
#"Filtro"
but I get the following error; "Expression.Error: The field 'nameColumn' of the record wasn't found"
Please any idea why the variable is not recognised in the filter context?
Hi, I found the solution in this post.
My code is as follows:
(tabla as table,nameColumn as text, fecha as date, name as text) => let Origen = tabla, #"Filtro" = Table.SelectRows(Origen, each ( Record.Field(_,nameColumn) = name) and ( [Created Date] = fecha)) in #"Filtro"the solution is the function:
Record.Field(record as record, field as text) as any
2 Replies
- andres_montanagFrequent Visitor
Hi, I found the solution in this post.
My code is as follows:
(tabla as table,nameColumn as text, fecha as date, name as text) => let Origen = tabla, #"Filtro" = Table.SelectRows(Origen, each ( Record.Field(_,nameColumn) = name) and ( [Created Date] = fecha)) in #"Filtro"the solution is the function:
Record.Field(record as record, field as text) as any
- AlexisOlsonSuper User
Yep. And the function Table.Column is table equivalent of Record.Field (it returns a list rather than a single value).