Como renomear uma coluna no Power Query, através da sua posição.

Como renomear uma coluna no Power Query, através da sua posição (nº de ordem da coluna).

Introdução

Fala pessoal, blz?
Para renomear uma coluna dentro do Power Query é bem simples, apenas clicamos duas vezes no cabeçalho da coluna, e informamos um novo nome.
Porém, nem sempre conseguimos seguir com essa abordagem, principalmente quando lidamos com arquivos que sofrem incrementação e/ou possuem alguma informação que utiliza o nome do arquivo como parâmetro.

No meu caso, precisei lidar com alguns arquivos de forma incremental, onde a data de cada lançamento era baseada na data informada no nome do arquivo (vendas – 16-07-2020.xlsx). Com isso, no meio das minhas transformações, eu simplesmente definia minha primeira linha como cabeçalho e renomeava a coluna “vendas – 16-07-2020.xlsx” para “Data” e fazia o tratamento. Porém, ao carregar um arquivo com uma data anterior, a sequência já não fazia sentido, pois o nome da coluna já não era o mesmo.

Para resolver essa questão, tive que renomear a coluna usando como parâmetro o número de sequencia do coluna, que no meu caso, sempre seria a primeira, pois se tratava do nome do arquivo.

Como fazer?

Esta é a tabela que usei para exemplificar:

Print da minha tabela de exemplo

Uma maneira simples, é primeiramente renomeando da forma convencional mesmo. Abaixo segue o código da etapa criada, onde a coluna com cabeçalho “name” foi renomeada para “Nome”:

= Table.RenameColumns(#"Tipo Alterado",{{"name", "Nome"}})

Em cima deste código vamos fazer uma pequena adaptação. Iremos inserir o código abaixo substituindo o parâmetro “name” para o código que informa a posição que desejo mudar:

Table.ColumnNames(#"Tipo Alterado"){0}

#"Tipo Alterado" - Refere-se ao nome da etapa anterior.
{0} - Refere-se ao número da ordem da coluna que quero mudar,
lembrando que a primeira coluna é representada como 0 (zero).

Agora vamos inserir este código dentro da etapa de coluna renomeada, veja o antes e depois:

*** Antes ***
= Table.RenameColumns(#"Tipo Alterado",{{"name", "Nome"}})

*** Depois ***
= Table.RenameColumns(#"Tipo Alterado",{{Table.ColumnNames(#"Tipo Alterado"){0}, "Nome"}})

Este foi o resultado:

Print do resultado

Caso eu aplicasse o código abaixo:

= Table.RenameColumns(#"Tipo Alterado",
{{Table.ColumnNames(#"Tipo Alterado"){2}, "Nome"}})

Teria este resultado:

Print do segundo resultado

Conclusão

Esta foi uma dica bem simples, mais que me ajuda muito no dia a dia. Lembro que quando fui buscar uma solução, consegui achar algo somente em sites gringos, por isso decidi trazer este assunto aqui.

Inclusive segue a fonte: https://excelgorilla.com/power-query/change-column-type-by-position/

Espero ter conseguido ajudar de alguma forma!
Obrigado pelo seu tempo e fique bem!!! 😁👍