Ir para conteúdo
  • 0

Tratar dados de uma unica coluna


josevitor
Ir para solução Solucionado por Erick Oliveira ,

Pergunta

7 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Boa noite, @josevitor;

Use o exemplo abaixo:

let
    Source = Table.FromRows(
        Json.Document(
            Binary.Decompress(
                Binary.FromText(
                    "hY9BasMwEEWvMnjVQA2SY0dqdiYEumkJTXcmi3E8KYJEorJVepxm1TtkWV2sstzSJuB2M2j0Pp95VZWUNVJHnasRUliVyea6SuJY6oYs+XcTtweHsFbPjpRFuKPAWrj/OAHPmIyBBenOmtBxVrhYruYwk3nOUsZYDD7SnnZGU1yubvgEpqLgaSHEwG+N9UerDDQEO6e3ymg8hPLhjjU9Od0g+Ddo6bVDaLAFJueMha8WeP8agv5YY2Muef7N4yi3aNGf4qEj0qVVB7TBff8S3XvpmSgunH/19MJZIceEpZxAxnMWsmz61TOqDH84i3+cf3gW+eYT",
                    BinaryEncoding.Base64
                ),
                Compression.Deflate
            )
        ),
        let
            _t = ((type nullable text) meta [Serialized.Text = true])
        in
            type table [Column1 = _t]
    ),
    FilteredRows = Table.SelectRows(Source, each [Column1] <> null and [Column1] <> "")[Column1],
    Ranges = List.Transform(
        List.Numbers(0, Number.RoundUp(List.Count(FilteredRows) / 9)), each List.Range(FilteredRows, _ * 9, 9)
    ),
    Structure = (List as list) =>
        let
            Originallist = List.Buffer(List),
            Construction = #table(
                type table [
                    Cidade = text,
                    Estado = text,
                    Bairro = text,
                    Rua = text,
                    Número = Int64.Type,
                    Cep = text,
                    Telefone = text,
                    Horário de funcionamento = text
                ],
                {
                    {
                        Text.BeforeDelimiter(Originallist{0}, " -"),
                        Text.AfterDelimiter(Originallist{0}, "- "),
                        Text.BeforeDelimiter(Originallist{3}, " -"),
                        Text.BeforeDelimiter(Originallist{2}, " Nº"),
                        Number.From(Text.AfterDelimiter(Originallist{2}, "Nº ")),
                        Text.AfterDelimiter(Originallist{3}, " CEP: "),
                        Text.Trim(Originallist{5}),
                        Text.Combine({Originallist{7}, ", ", Originallist{8}})
                    }
                }
            )
        in
            Construction,
    Transfom = List.Transform(Ranges, Structure),
    Combine = Table.Combine(Transfom)
in
    Combine

 

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

  • 0
  • Alunos
14 minutos atrás, Erick Oliveira disse:

Boa noite, @josevitor;

Use o exemplo abaixo:

let
    Source = Table.FromRows(
        Json.Document(
            Binary.Decompress(
                Binary.FromText(
                    "hY9BasMwEEWvMnjVQA2SY0dqdiYEumkJTXcmi3E8KYJEorJVepxm1TtkWV2sstzSJuB2M2j0Pp95VZWUNVJHnasRUliVyea6SuJY6oYs+XcTtweHsFbPjpRFuKPAWrj/OAHPmIyBBenOmtBxVrhYruYwk3nOUsZYDD7SnnZGU1yubvgEpqLgaSHEwG+N9UerDDQEO6e3ymg8hPLhjjU9Od0g+Ddo6bVDaLAFJueMha8WeP8agv5YY2Muef7N4yi3aNGf4qEj0qVVB7TBff8S3XvpmSgunH/19MJZIceEpZxAxnMWsmz61TOqDH84i3+cf3gW+eYT",
                    BinaryEncoding.Base64
                ),
                Compression.Deflate
            )
        ),
        let
            _t = ((type nullable text) meta [Serialized.Text = true])
        in
            type table [Column1 = _t]
    ),
    FilteredRows = Table.SelectRows(Source, each [Column1] <> null and [Column1] <> "")[Column1],
    Ranges = List.Transform(
        List.Numbers(0, Number.RoundUp(List.Count(FilteredRows) / 9)), each List.Range(FilteredRows, _ * 9, 9)
    ),
    Structure = (List as list) =>
        let
            Originallist = List.Buffer(List),
            Construction = #table(
                type table [
                    Cidade = text,
                    Estado = text,
                    Bairro = text,
                    Rua = text,
                    Número = Int64.Type,
                    Cep = text,
                    Telefone = text,
                    Horário de funcionamento = text
                ],
                {
                    {
                        Text.BeforeDelimiter(Originallist{0}, " -"),
                        Text.AfterDelimiter(Originallist{0}, "- "),
                        Text.BeforeDelimiter(Originallist{3}, " -"),
                        Text.BeforeDelimiter(Originallist{2}, " Nº"),
                        Number.From(Text.AfterDelimiter(Originallist{2}, "Nº ")),
                        Text.AfterDelimiter(Originallist{3}, " CEP: "),
                        Text.Trim(Originallist{5}),
                        Text.Combine({Originallist{7}, ", ", Originallist{8}})
                    }
                }
            )
        in
            Construction,
    Transfom = List.Transform(Ranges, Structure),
    Combine = Table.Combine(Transfom)
in
    Combine

 

Fala Erick blz? Cara valeu pela resposta.

Mas onde eu jogo essa codigo kkk?

To no comeco do Power Bi.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Valeu, deu certo, apareceu os dois.

Como faco para alterar ou incluir as outras cidades que tem na planilha? que na foto coloquei só 2 modelo como exemplo

18 minutos atrás, Erick Oliveira disse:

@josevitor, insira uma consulta nula e insira o código no editor avançado:


image.jpeg.7156fb20f501af87a845b18f2210a751.jpeg

 

5 coisas no Power Query que talvez nunca tenham te explicado ou mostrado.

 

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