Ir para conteúdo
  • 0

Agrupamento de registros - Processo de ETL


Anderson Campos
Ir para solução Solucionado por Vitor Peralva ,

Pergunta

  • Alunos

Boa noite!

Estou cursando a Trilha Champion e praticando os conteúdos em situações e bases reais da empresa que trabalho. Contudo tenho encontrado muita resistência e dificuldade para acessar dados e relatórios, pois existe uma grande preocupação com o sigilo das informações e pouca disposição em discutir novas ideias e eventuais otimizações.

As bases ao qual possuo acesso só podem ser exportadas em formato .pdf e devido a tabulação e configuração do layout paginado o processo de ETL é bem trabalhoso.

Preciso de auxílio para resolver a seguinte questão:

Estou trabalhando em uma base com cerca de 8 mil linhas e verifiquei uma “perda” valores após aplicadas algumas etapas de tratamento. O motivo é que em função da tabulação algumas linhas acabam sendo “agrupadas” e removidas durante o processo de limpeza da base.

Problema:
image.png.2ee6a90b704ef3e76e5c697af9de97a1.png

Solução:
image.png.57a65d384b16e8a97f40f22c353b1cd2.png

Por favor, solicito auxílio dos especialistas rs.

Teste.xlsx

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 1
  • Alunos
  • Solução

Boa Noite, @Anderson Campos!

 

Trabalhar com PDF é sempre complicado.

Trabalhando com a sua base de dados, resolveria da seguinte maneira:

1) Selecione uma coluna que tenha essencialmente texto, peguei a da descrição;

2) Clique com o botão direito, selecione Transformar e Minúscula.

Obs.: A escolha aqui não importa, o objetivo é só o Power Query preparar a função para modificarmos.

Como resultado, você deve ter:

image.png.ca7066a90d29c70e2987f38ce18c18d7.png

3) Vamos substituir a fórmula por:

= Table.TransformColumns(
Fonte,
{
{"Id", each Text.Split(Text.From(_), "#(lf)"), type text},
{"Descrição", each Text.Split(Text.From(_), "#(lf)"), type text},
{"Custo", each Text.Split(Text.From(_), "#(lf)"), type text}
}
)

Basicamente o que estou fazendo é dividir todas as linhas de cada uma das colunas pela quebra de linha e garantindo que ela esteja como texto, antes (Text.From).

Como resultado, você deve obter:

image.png.47231803d944dc4b426b725187adfc61.png

4) Agora, precisamos unir as listas numa tabela.

Adicione uma coluna personalizada com a seguinte fórmula:

Table.FromColumns({[Id], [Descrição], [Custo]}, {"Id", "Descrição", "Custo"})

Como resultado:

image.png.85d91ebb194a7722cc19f98139418ab3.png

 

5) Selecione a coluna personalizada, clique com o botão direito e remova as outras colunas.

6) Expanda a coluna personalizada.

Como resultado, você deve obter:

image.png.a1e4c32d69d5c6cc69b00532178ec94e.png

7) Defina os tipos de dados:

image.png.642f9779a9006db3001e659262403b77.png

 

Acredito que está condizente com o que esperava de solução.

  • Like 3
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
17 horas atrás, Vitor Peralva disse:

Boa Noite, @Anderson Campos!

 

Trabalhar com PDF é sempre complicado.

Trabalhando com a sua base de dados, resolveria da seguinte maneira:

1) Selecione uma coluna que tenha essencialmente texto, peguei a da descrição;

2) Clique com o botão direito, selecione Transformar e Minúscula.

Obs.: A escolha aqui não importa, o objetivo é só o Power Query preparar a função para modificarmos.

Como resultado, você deve ter:

image.png.ca7066a90d29c70e2987f38ce18c18d7.png

3) Vamos substituir a fórmula por:

= Table.TransformColumns(
Fonte,
{
{"Id", each Text.Split(Text.From(_), "#(lf)"), type text},
{"Descrição", each Text.Split(Text.From(_), "#(lf)"), type text},
{"Custo", each Text.Split(Text.From(_), "#(lf)"), type text}
}
)

Basicamente o que estou fazendo é dividir todas as linhas de cada uma das colunas pela quebra de linha e garantindo que ela esteja como texto, antes (Text.From).

Como resultado, você deve obter:

image.png.47231803d944dc4b426b725187adfc61.png

4) Agora, precisamos unir as listas numa tabela.

Adicione uma coluna personalizada com a seguinte fórmula:

Table.FromColumns({[Id], [Descrição], [Custo]}, {"Id", "Descrição", "Custo"})

Como resultado:

image.png.85d91ebb194a7722cc19f98139418ab3.png

 

5) Selecione a coluna personalizada, clique com o botão direito e remova as outras colunas.

6) Expanda a coluna personalizada.

Como resultado, você deve obter:

image.png.a1e4c32d69d5c6cc69b00532178ec94e.png

7) Defina os tipos de dados:

image.png.642f9779a9006db3001e659262403b77.png

 

Acredito que está condizente com o que esperava de solução.

Perfeito meu amigo!
Espero poder retribuir à comunidade muito em breve rs.
Grande abraço @Vitor Peralva!

  • Like 1
Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...