Forum Discussion

Dicken's avatar
Dicken
Post Prodigy
4 months ago
Solved

Function selection

Hi, 
a while ago i wanted to have way of selecting whihc function to use within a formala; ie sum,  or average; 

i have 2 ways   Expession.Evaluate and  Function.Invoke;   so ; 

select = parameter list  which is a list of 0,1 
let
  Source = #table(
    type table [Item = text, Unit = number], 
    {{"a", 2}, {"b", 3}, {"c", 3}, {"a", 2}, {"c", 2}, {"b", 4}}
  ), 

  flist = {List.Sum, List.Average},

  Custom1 = Table.Group(Source, {"Item"}, {{"N", each Function.Invoke(flist{select}, {[Unit]})}})
in
  Custom1

or 

textselect = parameter list "a", "b" 
let
  Source = #table(
    type table [Item = text, Unit = number],
    {{"a", 2}, {"b", 3}, {"c", 3}, {"a", 2}, {"c", 2}, {"b", 4}}
  ),
  Custom1 = Table.Group(
    Source,
    {"Item"},
    {{"N", each Expression.Evaluate(textselect, [a = List.Sum, b = List.Average])([Unit])}}
  )
in
  Custom1


Just wondered if anyone had other ways of  selectiing functions   or making a type of slicer for pq ? 

Richard.