Alunos wesleirocha84 Postado Janeiro 18, 2022 Alunos Compartilhar Postado Janeiro 18, 2022 Prezados boa noite, alguém poderia ajudar, preciso agrupar para que fique conforme print abaixo. Tentei agrupar da forma simples mas não deu certo, pois existem faixas "quebradas". Grato. POWER QUERY, AGRUPAMENTO BÁSICO teste.pbix Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Solução Vitor Peralva Postado Janeiro 20, 2022 Alunos Solução Compartilhar Postado Janeiro 20, 2022 Boa Noite, @wesleirocha84! Vou ver se consegui captar a sua regra de negócio e te auxiliar: Regra de Negócio: Deve ser tratada em uma nova linha se: a) O prefixo for diferente do da linha anterior; b) Dentro do mesmo prefixo se a operadora for diferente da da linha anterior; c) Dentro do mesmo prefixo e mesma operadora, se a faixa inicial não for sequência da faixa final da linha anterior. Estabelecidas as premissas, vamos a sugestão de resolução: 1) Eliminei todas as etapas, deixando somente a etapa de fonte (Source). Sendo este o nosso ponto de partida: 2) Criei uma coluna de índice iniciando de 0. Renomeei, também, a etapa para Base: 3) Criei uma coluna personalizada para aplicarmos a nossa regra, utilizando a seguinte fórmula: = if [Índice] = 0 then [Índice] else if Base[Prefixo]{[Índice]} <> Base[Prefixo]{[Índice] - 1} then [Índice] else if Base[Operadora]{[Índice]} <> Base[Operadora]{[Índice] - 1} then [Índice] else if Number.From(Base[Faixa Inicial]{[Índice]}) <> Number.From(Base[Faixa Final]{[Índice] - 1}) + 1 then [Índice] else null Obs.: A imagem não apresenta toda a fórmula, a qual está em sua integridade logo acima. Atente ao seguinte: Não temos linha anterior a primeira, por isto trazemos a coluna de índice como resultado, ela sempre vai originar a primeira linha. Depois, vamos fazendo os teste lógicos. Ele só avalia a condição abaixo, se a de cima for falsa. Como resultado teremos: 4) Realizei o preenchimento para baixo para que os nulls assumam o valor da primeira linha imediatamente acima que estiver preenchida. 5) Realizei o agrupamento pela coluna Personalizar, Prefixo e Operadora, requisitando o Mínimo da Faixa Inicial e o Máximo da Faixa Final. 6) Agora, basta eliminar a coluna de Personalizar e terá o resultado esperado: Acredito que com isto tenha sido resolvido o seu problema. 2 Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Tiago Queiroz Postado Janeiro 18, 2022 Alunos Compartilhar Postado Janeiro 18, 2022 Eu não entendi bem a lógica de agrupamento que você deseja implantar. Você poderia detalhar por escrito a lógica? Também não entendi a Coluna Prefixo. Detalhe sua regra de negócio que será um prazer ajudar. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos wesleirocha84 Postado Janeiro 19, 2022 Autor Alunos Compartilhar Postado Janeiro 19, 2022 A tabela tem umas 200k de linha, agrupando conforme exemplo acima, consigo reduzir drasticamente. Quanto a coluna prefixo, trata-se de prefixos de ranges de telefones das operadoras. Na primeira linha por exemplo a range de 11 2207 0000 a 11 2207 2299 pertence a oi (exemplo pra fim didático), quando a faixa e inteira, de 0000 a 9999,não tenho problema, o problema é quando é "quebrada". Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Barony Postado Janeiro 19, 2022 Alunos Compartilhar Postado Janeiro 19, 2022 @wesleirocha84 Voce pode ir na aba transformar e agrupo por igual print abaixo. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos wesleirocha84 Postado Janeiro 19, 2022 Autor Alunos Compartilhar Postado Janeiro 19, 2022 1 hora atrás, Barony disse: @wesleirocha84 Voce pode ir na aba transformar e agrupo por igual print abaixo. Dessa forma não atendeu não, valeu. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Barony Postado Janeiro 19, 2022 Alunos Compartilhar Postado Janeiro 19, 2022 manda a base de dados Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos wesleirocha84 Postado Janeiro 19, 2022 Autor Alunos Compartilhar Postado Janeiro 19, 2022 (editado) A base tá imputada manualmente dentro do power query, dentro do PBIX, anexado. Editado Janeiro 19, 2022 por wesleirocha84 Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Frank Figueredo Postado Janeiro 21, 2022 Alunos Compartilhar Postado Janeiro 21, 2022 @wesleirocha84 a solução proposta pelo Vitor Atende? Se sim por gentileza Define a Melhor resposta para o tópico, para isso basta nela e clicar em uma das duas opções conforme print: Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos wesleirocha84 Postado Janeiro 21, 2022 Autor Alunos Compartilhar Postado Janeiro 21, 2022 @Frank Figueredo @Vitor Peralva Obrigado pelo retorno, creio que irá me atender sim, mas ainda não testei na minha base, por isso ainda não dei como resolvido. Até hoje a tarde concluo e fecho. 1 Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos wesleirocha84 Postado Janeiro 21, 2022 Autor Alunos Compartilhar Postado Janeiro 21, 2022 @Vitor Peralva valeu pela ajuda, só uma observação, funcionou em um modelo pequeno de dados, mas como minha base original tem 200k de linha, ficou tentando calcular por vários minutos e acabei desistindo, mas vou deixar o conceito aqui. Mais de 5 minutos tentando agrupar e nada, até exclui a etapa, olha em quanto já estava. Arquivo de 40MB Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Vitor Peralva Postado Janeiro 21, 2022 Alunos Compartilhar Postado Janeiro 21, 2022 @wesleirocha84, neste caso, você vai fazer um acréscimo ao seu código. Na etapa em que adicionamos o índice e chamamos a consulta de Base, você vai envolver ela com um Table.Buffer. Vai ficar mais ou menos assim: Base = Table.Buffer(Table.AddIndexColumn(Source, "Índice", 0, 1, Int64.Type)) O Table.Buffer cria uma espécie de nó na consulta, assim, ao invés de ficar rodando todas as etapas anteriores novamente, ele passa a pegar os dados daquela etapa em diante. O Table.Buffer vai ocupar uma parte de sua memória RAM, então, o seu uso deve ser feito com cuidado. Testa com este adendo e informa se deu certo. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos wesleirocha84 Postado Janeiro 21, 2022 Autor Alunos Compartilhar Postado Janeiro 21, 2022 @Vitor Peralva, não foi não, mesma coisa, eu até tinha usado Table.Buffer em outra etapa, mas mesmo tempo, não deixei nem concluir. Mas não tem problema não, esa solução pra agrupar era pra reduzir as linhas e ter uma visualização melhor, mais resumida com as faixas com "menos cortes". Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Vitor Peralva Postado Janeiro 21, 2022 Alunos Compartilhar Postado Janeiro 21, 2022 Depois vê quando tiver um tempo e tentamos marcar um encontro no Zoom para avaliar o problema e entender o porque ele está se comportando desta maneira. Chama no Discord que fica mais fácil o contato. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos wesleirocha84 Postado Janeiro 21, 2022 Autor Alunos Compartilhar Postado Janeiro 21, 2022 Beleza, obrigado. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
wesleirocha84
Prezados boa noite, alguém poderia ajudar, preciso agrupar para que fique conforme print abaixo. Tentei agrupar da forma simples mas não deu certo, pois existem faixas "quebradas". Grato.
POWER QUERY, AGRUPAMENTO BÁSICO
teste.pbix
Link para o comentário
Compartilhar em outros sites
14 respostass a esta questão
Posts Recomendados
Faça login para comentar
Você vai ser capaz de deixar um comentário após fazer o login
Entrar Agora