Ir para conteúdo
  • 0

Transformação de Dados


Fernando Santos
Ir para solução Solucionado por Bruno Abdalla de Souza ,

Pergunta

  • Alunos

Prezados.

Estou com o seguinte problema.  Fiz uma importação por pasta de vários arquivos PDF, uma das tabelas foi detectada e tratada com sucesso, outra preciso de um valor (FGTS) que está no cabeçalho de cada arquivo.
Eliminei as colunas desnecessárias até restar a que preciso, porém o valor está na mesma coluna da label que o identifica, não consegui transformar em linhas, sem contar que existem outros valores que preciso excluir porém não possuem um padrão.
Preciso apenas isolar (filtrar) apenas a label e o valor logo abaixo.  Como posso fazer?

image.thumb.png.aca98d3c9835c6f19028f22371b20797.png

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução
let
    Fonte = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCkvMyS9ScHMPCVaK1YlWsjDXMTUGswyNIJQBRNwSTKGpNra00DE3QlZuZoas3MwcwcCu31jHAmKdsYmRKZhhYgylwaSpuVJsLAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [FGTS = _t]),
    AlteraTipoDados = Table.TransformColumnTypes(Fonte,{{"FGTS", type text}}),
    AdicionaColIndice = Table.AddIndexColumn(AlteraTipoDados, "FiltroFGTS", -1, 1, Int64.Type),
    LinhaAnterior = Table.TransformColumns(AdicionaColIndice, {{"FiltroFGTS", each try if AdicionaColIndice[FGTS]{_} = "Valor FGTS" then AdicionaColIndice[FGTS]{_+1} else null otherwise null, type text}}),
    FiltraNaoNulos = Table.SelectRows(LinhaAnterior, each [FiltroFGTS] <> null),
    RemoveColFiltro = Table.SelectColumns(FiltraNaoNulos,{"FGTS"})
in
    RemoveColFiltro

 

ObterValoresFGTS.pbix

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

  • 0
  • Alunos
22 horas atrás, Bruno Abdalla de Souza disse:
let
    Fonte = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCkvMyS9ScHMPCVaK1YlWsjDXMTUGswyNIJQBRNwSTKGpNra00DE3QlZuZoas3MwcwcCu31jHAmKdsYmRKZhhYgylwaSpuVJsLAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [FGTS = _t]),
    AlteraTipoDados = Table.TransformColumnTypes(Fonte,{{"FGTS", type text}}),
    AdicionaColIndice = Table.AddIndexColumn(AlteraTipoDados, "FiltroFGTS", -1, 1, Int64.Type),
    LinhaAnterior = Table.TransformColumns(AdicionaColIndice, {{"FiltroFGTS", each try if AdicionaColIndice[FGTS]{_} = "Valor FGTS" then AdicionaColIndice[FGTS]{_+1} else null otherwise null, type text}}),
    FiltraNaoNulos = Table.SelectRows(LinhaAnterior, each [FiltroFGTS] <> null),
    RemoveColFiltro = Table.SelectColumns(FiltraNaoNulos,{"FGTS"})
in
    RemoveColFiltro

 

ObterValoresFGTS.pbix 14 kB · 2 downloads

Está quase saindo, mas parei nesta etapa, pois ele está transformando todos os valores para "null"

 

image.thumb.png.6d5fcd69721d3901332edb3cc4a8f537.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
23 horas atrás, Bruno Abdalla de Souza disse:
let
    Fonte = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCkvMyS9ScHMPCVaK1YlWsjDXMTUGswyNIJQBRNwSTKGpNra00DE3QlZuZoas3MwcwcCu31jHAmKdsYmRKZhhYgylwaSpuVJsLAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [FGTS = _t]),
    AlteraTipoDados = Table.TransformColumnTypes(Fonte,{{"FGTS", type text}}),
    AdicionaColIndice = Table.AddIndexColumn(AlteraTipoDados, "FiltroFGTS", -1, 1, Int64.Type),
    LinhaAnterior = Table.TransformColumns(AdicionaColIndice, {{"FiltroFGTS", each try if AdicionaColIndice[FGTS]{_} = "Valor FGTS" then AdicionaColIndice[FGTS]{_+1} else null otherwise null, type text}}),
    FiltraNaoNulos = Table.SelectRows(LinhaAnterior, each [FiltroFGTS] <> null),
    RemoveColFiltro = Table.SelectColumns(FiltraNaoNulos,{"FGTS"})
in
    RemoveColFiltro

 

ObterValoresFGTS.pbix 14 kB · 3 downloads


Que solução! @Bruno Abdalla de Souza já quebrei cabeça com isso algumas vezes e vc fez de uma maneira muito simples parabéns!! Manja demais

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
23 horas atrás, Bruno Abdalla de Souza disse:
let
    Fonte = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCkvMyS9ScHMPCVaK1YlWsjDXMTUGswyNIJQBRNwSTKGpNra00DE3QlZuZoas3MwcwcCu31jHAmKdsYmRKZhhYgylwaSpuVJsLAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [FGTS = _t]),
    AlteraTipoDados = Table.TransformColumnTypes(Fonte,{{"FGTS", type text}}),
    AdicionaColIndice = Table.AddIndexColumn(AlteraTipoDados, "FiltroFGTS", -1, 1, Int64.Type),
    LinhaAnterior = Table.TransformColumns(AdicionaColIndice, {{"FiltroFGTS", each try if AdicionaColIndice[FGTS]{_} = "Valor FGTS" then AdicionaColIndice[FGTS]{_+1} else null otherwise null, type text}}),
    FiltraNaoNulos = Table.SelectRows(LinhaAnterior, each [FiltroFGTS] <> null),
    RemoveColFiltro = Table.SelectColumns(FiltraNaoNulos,{"FGTS"})
in
    RemoveColFiltro

 

ObterValoresFGTS.pbix 14 kB · 4 downloads

Bruno.  Agora funcionou perfeitamente!!!!

Muito, muito e muito obrigado pela ajuda.

Estou te devendo um sorvete!

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...