Free Trial

Repositório de Desafios

Resolva o desafio, compartilhe sua solução e lidere nossa Comunidade!

Desafio #51: Calcular prazo de entrega em dias úteis

SylviaP
Moderator
Moderator

Olá pessoal, tudo bem com vocês?

 

O desafio dessa semana está especial e foi inspirado em uma dúvida postada pelo nosso usuário @tcastello2019. Quero agradecer ao @carlosteixeira  e ao @marcusblackhill  que compartilharam seus conhecimentos para que nosso usuário chegasse a uma solução. 🙂

 

giphy

 

Aliás, essa é uma novidade que quero compartilhar... Esse ano vou garimpar os posts que vocês colocam no fórum para montar desafios ainda mais relacionados à realidade de vocês. Então fiquem atentos que vez ou outra posso entrar em contato para tirar dúvidas sobre a solução do problema.

 

Bom, o desafio é o seguinte:

 

Uma empresa de móveis possui entregas para serem feitas nos próximos dias. Os pedidos foram feitos em datas variadas e por clientes de todo Brasil.

Seu desafio é calcular o prazo de entrega para cada pedido considerando o prazo de entrega de cada cidade. O prazo deve ser calculado em dias úteis descontando o dia em que o pedido foi realizado, ou seja, se um pedido foi feito na sexta-feira e o prazo de entrega para essa determinada cidade é de três dias, o pedido será entregue na quarta-feira da próxima semana. Os dias de feriado também devem ser excluídos da contagem, ou seja, se um pedido foi feito na sexta-feira e segunda-feira próxima é feriado, esse pedido será entregue na quinta-feira da próxima semana.

 

Seja criativo! Você pode usar macro, descobrir ferramentas que nunca usou antes, mas o importante é dar uma solução para essa empresa.

 

Bom desafio!

SylviaP
Moderator
Moderator

A-ha, parece que a galera deu uma travada por aqui!

Qualquer coisa estou por aqui.

Tenham um ótimo final de semana.

Malvim
Bólide

Olá!

 

Arrumei esse jeito aqui pra 'tratar' esses tais dias úteis!

 

Fluxo:

Saqueador
Malvim_1-1612198590181.png

 

Macro:

Saqueador
Malvim_0-1612198568298.png

 

Pra chegar na resposta proposta tive que não considerar o estado na hora da junção entre as os prazos de entrega e os pedidos. Se associar as entregas com os prazos por cidade, escolhendo CIDADE e ESTADO como campos de junção, ficam 5 entregas que não possuem cidades. E acredito que o prazo de entrega deveria mudar (ou ser discriminado separadamente) pra cidades de nomes iguais em estados diferentes.

 

 

Marcus Alvim

 

 

Malvim
Bólide

@SylviaP , adorei a solução, principalmente por que pude aprender umas 'técnicas' novas:

 

Saqueador

 

1) Eu não sabia que dava pra configurar algumas fórmulas pro resultados já saírem em português! Que maravilha!

 

2) A tática da ferramenta Total Acumulado pra não precisar de uma Batch Macro!

 

 

*Mas acredito que tenha um erro nessa solução. Ná última ferramenta Junção e na ferramenta Total Acumulado a opção de agrupar está por CIDADE, e o correto seria agrupar e depois 'juntar' por Pedido ou código. 

 

Deixando do jeito que está em cidades com o mesmo nome podem acontecer divergências como esta:

 

Malvim_0-1612367904053.png

 

 

Marcus Alvim

SylviaP
Moderator
Moderator

Olá @Malvim, você tem toooooooda razão!

Eu não tinha me atentado a esse detalhe.

Muito, muito obrigada!

Salvei a segunda solução considerando suas correções.

 

Abraços,

Thableaus
17 - Castor
17 - Castor

Olá,

 

Exercício legal com datas e boa oportunidade pra praticar a ferramenta Generate Rows! Apenas informar que tem 3 registros da solução que estão com a data de entrega errada. É bom verificarem.

 

Saqueador
Thableaus_1-1615659294863.png

 


Interessante que os feriados não coincidiram com nenhuma data e prazo.

 

Segue solução em anexo.


Abraços,

SylviaP
Moderator
Moderator

Oi @Thableaus ,

Eu comparei sua solução com a nossa tentando identifcar quais datas estavas erradas, mas não achei não.

Depois me fala quais foram as inconsistências.

Obrigada! 🙂

kendi
Bólide

Segue a resolução realizada em conjunto com a @Ranyaky-Vilela@nicolascorreiacolombo, @biosartorelli!!!!

 

O desafio é bem mais complicado do que aparenta ser. rsrs

 

Segue o nosso fluxo:

Saqueador
kendi_0-1632841058822.png

 

 

Como não houve nenhum dia no prazo de entrega que seria feriado, acabamos não considerando no fluxo a validação do feriado.

Saqueador
kendi_2-1632841117648.png

 

Como já foi apontado identificamos duas inconsistências nos dados e resposta:

 

 

 - UF incorretas

Como foi indicado pelos outros colegas, há algumas cidades que não estão com a UF correta nos pedidos e na base de fretes:

Pedido:

kendi_3-1632841162533.png

Base de frete:

kendi_4-1632841381294.png

 

Com uma rápida validação no Google:

  • Criciúma fica em Santa Catarina;
  • Sete Lagoas e Três Lagoas estão com a UF correta no pedido, mas na base de fretes está Sete Lagoas está como Mato Grosso do Sul e Três Lagoas como Minas Gerais; 
  • Juazeiro fica na Bahia (não PR);
  • Sobral é Ceará (não RS).

 

 - Resposta com data de entrega incorretas

Na resposta do Desafio acreditamos que há três pedidos que estão com o cálculo da data da entrega errados:

Saqueador
kendi_5-1632841632318.png

 

No primeiro pedido, o primeiro dia de entrega é 08/01/2021 com um prazo de 12 dias úteis, então a data de entrega deveria ser 25/01/2021 e não 22/01/2021:

kendi_6-1632841946039.png

 

O mesmo se aplica para os demais pedidos.

Realmente aparenta ser mais fácil do que é.

Bom que resolvemos isso em grupo de estudos

SylviaP
Moderator
Moderator

Olá Dream Team @Ranyaky-Vilela @biosartorelli  @nicolascorreiacolombo @kendi!

Bom, primeiramente sempre um prazer ver vocês por aqui!

 

Segundo, sim esse desafio é bem mais difícil do que aparenta... Parece simples calcular os dias úteis, mas eu também achei tricky!

Agora achei muito legal você checarem se alguma data de entrega coincidia com feriado antes de sair juntando tudo. Uma bela sacada eu diria!

 

Outra coisa é que vou corrigir a base de dados de acordo com as inconsistências apontadas. Vocês não são apenas usuários, são também meus parceiros de trabalho! 🙂 Obrigada!

 

Apenas para vocês sabereme, eu gero muitas bases fakes para não termos problemas com clientes ou mesmo com direitos autorais, mas a maioria não é brasileira, então creio que nesse caso as inconsistências venham daí! Não estou justificando o erro não, mas às vezes não paro para olhar timtim por timtim.

Em todo o caso, mais uma ver obrigada! 🙂

 

Abraços ao time!