Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
3 years ago
Solved

Rename many columns dynamically in Power Query

Hey   I am currently working on renamining several columns (around 60 columns) at once dynamically and kindly ask for help if there is any more efficient way of writing the code in the step. Right ...
  • AlexisOlson's avatar
    3 years ago

    I'd recommend something like this:

    let
        <...>
        #"Promoted Headers" = <...>,
        ColNames = List.Buffer(Table.ColumnNames(#"Promoted Headers")),
        ReplaceList = List.Transform({1..4}, each {ColNames{_+51}, "wk" & Number.ToText(_)}),
        #"Renamed Columns" = Table.RenameColumns(#"Promoted Headers", ReplaceList)
    in
        #"Renamed Columns"

     

    This stores the column names as a list and then transforms {1,2,3,4} into:

    {
      {ColNames{1+51}, "wk" & Number.ToText(1)},
      {ColNames{2+51}, "wk" & Number.ToText(2)},
      {ColNames{3+51}, "wk" & Number.ToText(3)},
      {ColNames{4+51}, "wk" & Number.ToText(4)}
    } =
    {
      {ColNames{52}, "wk1"},
      {ColNames{53}, "wk2"},
      {ColNames{54}, "wk3"},
      {ColNames{55}, "wk4"}
    }