【问题标题】:PowerQuery - use position of column instead of column name in calculationPowerQuery - 在计算中使用列的位置而不是列名
【发布时间】: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 列等

如何将这些列名替换为职位?

非常感谢您的帮助!

【问题讨论】:

  • 建议:添加代码围栏以突出代码并使其更具可读性。

标签: powerquery


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-10
    • 2015-06-17
    • 2022-11-12
    • 1970-01-01
    相关资源
    最近更新 更多