March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
Hello,
I need some help understanding how to pass a column name as parameter into a custom function.
I have a table (Accounts) from which I need a specific column (No) using a function that will filter that column.
@wdx223_Daniel was kind enough to help me getting the M code for filtering information in that table into another post: Power Query Select rows between two TEXT values
Now I have (partially) failed to create a custom function from his code, because the table name and column name will not be the same every time.
The code should be like this:
let
func = (srcTable as table, srcColumn as text, strStartWith as text, strEndWith as text) as list =>
let
Source = srcTable,
Pas1 = Table.Column(
Table.SelectRows(
Source,
each
let
fx = (txt1, txt2) =>
List.Count(Text.Split(txt1, ".")) = List.Count(Text.Split(txt2, "."))
and
Text.Remove(txt1, ".") <= Text.Remove(txt2, ".")
in
fx(strStartWith, srcColumn) and fx(srcColumn, strEndWith)
),
srcColumn
)
in
Pas1
in
func
My problem seems to be on the following line:
fx(strStartWith, srcColumn) and fx(srcColumn, strEndWith)
If instead of the parameter srcColum, represeting the source column from the source table (srcTable) that I have to filter & return as list I will put the real name of the column ([No]) as this:
fx(strStartWith, [No]) and fx([No], strEndWith)
...the code will work perfectly, and will return the expected data.
So, Is there a way to pass the column name as parameter?
Kind Regards,
Lucian
Solved! Go to Solution.
After some more digging, I find the answer => Record.Field(_,srcColumn).
So, changing the following line from:
fx(strStartWith, srcColumn) and fx(srcColumn, strEndWith)
to
fx(strStartWith, Record.Field(_,srcColumn)) and fx(Record.Field(_,srcColumn), strEndWith)
Will make the code work.
Kind Regards,
Lucian
After some more digging, I find the answer => Record.Field(_,srcColumn).
So, changing the following line from:
fx(strStartWith, srcColumn) and fx(srcColumn, strEndWith)
to
fx(strStartWith, Record.Field(_,srcColumn)) and fx(Record.Field(_,srcColumn), strEndWith)
Will make the code work.
Kind Regards,
Lucian
Thanks, this solved a problem for me 🙂
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
User | Count |
---|---|
20 | |
13 | |
10 | |
9 | |
7 |
User | Count |
---|---|
39 | |
27 | |
16 | |
15 | |
10 |