超级查询-规范化列

时间:2019-01-09 16:19:41

标签: excel powerquery

如何通过所有列的最大值对其进行归一化?

请参阅以以下表格开头的表格:

enter image description here

结果应该是所有列均除以它们自己的最大值,例如:

enter image description here

Power Query脚本应:

  • 应用于所有列,列数是动态的
  • 各列应除以它们自己的最大值

1 个答案:

答案 0 :(得分:1)

有趣的问题!如果您愿意在高级编辑器中使用M而不是仅仅依赖于GUI,那也不太困难。

let
    Source = <Data Source Here>,
    ToColumns = Table.ToColumns(Source),
    DivideByMax = List.Transform(ToColumns,
                      (Col) => List.Transform(Col, each _ / List.Max(Col))
                  )
    Result = Table.FromColumns(DivideByMax, Table.ColumnNames(Source))
in
    Result

这是将表格移到列表(列)列表中。然后,通过将该列表的每个元素除以该列表/列的最大值,来变换每个列表/列。最后,它使用第一步中的列名将列表列表转换回表中。