Forum Discussion

Thomas_123's avatar
Thomas_123
New Member
1 year ago
Solved

Replace fixed column names in a function

Hello   I try to replace fixed column names in a function to reuse the function in other queries. Unfortunately I can't get any further with two replacements.   The function calculates an averag...
  • OwenAuger's avatar
    1 year ago

    Hi Thomas_123 

    You can update those pieces of code using

    Table.Column( ... , ValueColumn )

    and

    Record.Field ( row, YearColumn) 

     

    The full M code (reformatted slightly) would be:

    let
      MyFunction = ( Table as table, NewColumn as text, YearColumn as text, ValueColumn as text, Years_back as number ) =>
        Table.AddColumn(
          Table,
          NewColumn,
          (x) =>
            List.Average(
              Table.Column(
                Table.SelectRows(
                  Table,
                  (row) =>
                    List.Contains(
                      List.MaxN(
                        List.Select(Table.Column(Table, YearColumn), (y) => y <= x{YearColumn}),
                        Years_back
                      ),
                      Record.Field(row, YearColumn)
                    )
                ),
                ValueColumn
              )
            )
        )
    in
      MyFunction

    Does this work for you?