Free Trial

Fórum

SOLUCIONADO

Renomear campos de várias planilhas em um único arquivo Excel.

andrewnavarro
Asteroide

Bom dia Comunidade,

Estou com um grande desafio para trazer 139 planilhas em uma única base, mas a diferença é que todas elas nao tem um padrão de nome de campos, e a ordenação desses campos não são padrão, mas gostaria de de fazer um replace com o nome dos campos com uma base que tenho para fazer isso, deixando no mesmo padrão para trazer dinamicamente todas as bases das 139 abas de planilhas em uma única base.

Pensei em fazer uma Macro para isso, mas não consegui avançar.

Alguém teria uma idéia para vencer esse desafio ?

Em anexo envio as tres bases para criar o fluxo.

 

6 RESPOSTAS 6

Olá @andrewnavarro.

@biosartorelli e eu usamos a sua dúvida na nossa sessão de estudos de hoje e esse foi o resultado que chegamos

Resolvemos por macro e se você tiver dúvida de como funciona, por favor entre em contato. A macro faz a importação das planilhas e posteriomente fomos ajustando utilizando outras ferramentas.

andrew.png

 

Abraço.

biosartorelli
Asteroide

Essa foi legal de pensar, Andrew! Qualquer coisa, estamos por aqui.

Ranyaky-Vilela
Bólide

Boa noite @andrewnavarro  tudo bem?

 

Utilizei 2 batch macros para poder importar o arquivo e realizar a leitura  de todas as abas.

Neste exemplo eu utilizei a ferramenta Directory para ler seu arquivo Base, caso no futuro você tenha que importar outros arquivos com nomes diferentes.

A 1º macro é usada para leitura de todas as abas do arquivo;

RanyakyVilela_0-1666047327656.png

 

A 2º macro é  em lote para ler vários arquivos com diferentes abas e formatos diferentes.

RanyakyVilela_1-1666047369847.png

 

 Como um registro é executado por vez, não importa se cada arquivo tem um modelo, número de colunas ou nomes diferentes.

 

Na configuração de ambas as macros na Interface Designer (View > Interface Designer) as propriedades devem estar marcado o modo de Output como Configuração Automática por Nome.

RanyakyVilela_2-1666047562604.png

 

Depois apenas ajustei os dados e padronizei utilizando a base de depara dos campos esperados. 

 

Para realizar o cruzamento com a base de Lojas e trazer a cidade, utilizei de duas formas:

1) Ferramenta Join, aplicando um Left Join, e juntando com Union, dessa forma você mantem a integridade da sua base, para caso alguma Loja não tenha sido atualizada na sua base de Lojas, assim você identifica  caso algum resultado fique de fora.

2) Ferramenta Find Replace pelos campos das lojas aplicando um Append na configuração e trazendo apenas a cidade.

 

RanyakyVilela_3-1666047984880.png

Em anexo você encontra o fluxo e as macros utilizadas.

 

Espero ter ajudado, qualquer duvida fica a disposição.

 

Abraços.

kendi
Bólide

boa noite @andrewnavarro 

 

a galera já deu boas soluções para o seu exercício, porém o alteryx já tem uma ferramenta que atende perfeitamente a sua necessidade, o Dynamic Rename:

 

kendi_0-1666048876194.png

 

 

Acredito que essa ferramenta torne muito mais simples o fluxo:

kendi_1-1666048930272.png

Macro:

kendi_2-1666048970888.png

 

Resultado final:

 

kendi_3-1666049015005.png

 

 

 

 

andrewnavarro
Asteroide

Perfeito antes  de conferir sua resolução para esse grande desafio, tinha feito com essa mesma lógica, mas um pequeno detalhe não cheguei no mesmo resultado, olhando seu fluxo, entendi onde errei, e achei bem interessante a forma simples como chegou no resultado.

Grato.

kendi
Bólide

@andrewnavarro  que bom que consegui ajudar.

É as vezes é um detalhezinho na configuração que nos trava, por isso que é bom compartilhar os nossos desafios, vamos ajudando uns aos outros.

Rótulos
Autores com maior número de soluções