Forum Discussion

gvg's avatar
gvg
Post Prodigy
5 years ago
Solved

How to reference table[column] as variables in a function

Hi folks,

I have a table with very many columns. I am looking to build a function (fChange) that can be called on any column. It looks like this:

 

= (myTable as table, myColumn as text) => let
    #"Replace Value" = Table.ReplaceValue( myTable, "some text", myTable[myColumn]{1} & " ccc",  // change to text on row 2 and " ccc"
    Replacer.ReplaceValue, {myColumn})
in
    #"Replace Value"

 

The function is supposed to be called using :

 

=fChange(TableFromPreviousStep, "Column78")

 

myTable[myColumn]{1} reference in line 2 is not working. Power Query interprets myColumn not as variable, but as the column name "myColumn". I need to have variable column name there so that I can call the function on any column. What is correct syntax to reference a column in a variable in "M" function? Failed to google find answer on the net.

  • gvg , you may want to try

    = (myTable as table, myColumn as text) =>
    let
        #"Replace Value" = Table.ReplaceValue( myTable, "some text", Table.ToList(Table.SelectColumns(myTable, myColumn)){1} & " ccc", Replacer.ReplaceValue, {myColumn})
    in
        #"Replace Value"

2 Replies

  • CNENFRNL's avatar
    CNENFRNL
    Community Champion

    gvg , you may want to try

    = (myTable as table, myColumn as text) =>
    let
        #"Replace Value" = Table.ReplaceValue( myTable, "some text", Table.ToList(Table.SelectColumns(myTable, myColumn)){1} & " ccc", Replacer.ReplaceValue, {myColumn})
    in
        #"Replace Value"