Ir para conteúdo
  • 0

Transformação de Dados


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

Pergunta

  • Membros

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
  • Membros
  • 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

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

  • 0
  • Membros
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
  • Membros
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
  • Membros
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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...