Powerquery:将列值传递给自定义函数

Powerquery: passing column value to custom function

我正在努力将列值传递给公式。我尝试了很多不同的组合,但只有当我对列进行硬编码时,它才会起作用,

(tbl as table, col as list) =>
let 
    avg = List.Average(col),
    sdev = List.StandardDeviation(col)
   
in    
    Table.AddColumn(tbl, "newcolname" , each ([column] - avg)/sdev)

我想用变量替换 [column]。事实上,这是我用于平均值和标准偏差的列。

请帮忙。 谢谢

这可能会做你想要的,称为 x= fctn(Source,"ColumnA") 是否使用来自 Source table

的 ColumnA 进行计算
(tbl as table, col as text) =>
let 
    avg = List.Average(Table.Column(tbl,col)),
    sdev = List.StandardDeviation(Table.Column(tbl,col))
 in Table.AddColumn(tbl, "newcolname" , each (Record.Field(_, col) - avg)/sdev)

您可能想要这个。是否提供列表中的平均值和标准差(可以来自任何 table),并对传递过来的 table 中的命名列进行后续计算

称为 x = fctn(Source,"ColumnNameInSource",SomeSource[SomeColumn])

(tbl as table, cname as text, col as list) =>
    let 
        avg = List.Average(col),
        sdev = List.StandardDeviation(col)
  in   Table.AddColumn(tbl, "newcolname" , each (Record.Field(_, cname) - avg)/sdev)