PowerQuery - 在计算中使用列的位置而不是列名
Posted
技术标签:
【中文标题】PowerQuery - 在计算中使用列的位置而不是列名【英文标题】:PowerQuery - use position of column instead of column name in calculation 【发布时间】:2021-07-13 17:30:08 【问题描述】:PowerQuery 和 M-Code 的新功能。 我添加了一个计算列以获得最大值。我想使用列的位置编号,而不是使用硬编码的列名。
目前的代码是: = Table.AddColumn(Source, "Maximum", each List.Max([#"1-6-2021"], [#"1-5-2021"], [#"1-4-2021"] ), 类型号)
我希望它是第 3 列,而不是 [#"1-6-2021"];对于 [#"1-5-2021"] 第 4 列等
如何将这些列名替换为职位?
非常感谢您的帮助!
【问题讨论】:
建议:添加代码围栏以突出代码并使其更具可读性。 【参考方案1】:您可以调整您想要的列 # 的 x 部分
0 是第一列,所以这是 2/3/4 列的最大值
let Source = Excel.CurrentWorkbook()[Name="Table1"][Content],
x= Table.AddColumn(Source, "Maximum", each List.Max(
Record.Field(_,Table.ColumnNames(Source)1),
Record.Field(_,Table.ColumnNames(Source)2),
Record.Field(_,Table.ColumnNames(Source)3)
), type number)
in x
如果您需要在一堆列上执行 Max,例如,下面将对除前两列之外的所有列执行此操作,前两列已被第二行删除
let Source = Excel.CurrentWorkbook()[Name="Table1"][Content],
colToSum = List.RemoveFirstN(Table.ColumnNames(Source),2),
AddIndex = Table.AddIndexColumn(Source,"Index",0,1),
GetMax = Table.AddColumn(AddIndex, "Custom", each List.Max( Record.ToList( Table.SelectColumns(AddIndex,colToSum)[Index]) ))
in GetMax
【讨论】:
以上是关于PowerQuery - 在计算中使用列的位置而不是列名的主要内容,如果未能解决你的问题,请参考以下文章