Forum Discussion
Anonymous
3 years agoNot applicable
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 ...
- 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"} }
AlexisOlson
3 years agoSuper User
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"}
}