Notifications
Clear all

Periodo de Maior Concentração de Tarefas

8 Posts
2 Usuários
0 Reactions
1,454 Visualizações
(@jokaman)
Posts: 44
Eminent Member
Topic starter
 

Boa noite

Mais uma vez pedindo ajuda.

Tenho um conjunto de Datas (Data_Inicio e Data_Fim) de determinadas tarefas e pretendo calcular o período de maior concentração de tarefas.

As várias premissas e exemplos estão no ficheiro que anexo.

Cumprimentos
Jorge Cabral

 
Postado : 31/05/2017 5:48 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa tarde Joka,

Achei bem interessante o seu problema, só não entendi bem: "Quando existem 2 periodos de igual concentração de Tarefas a que prevalece é a mais longa em termos de dias"

Explique mais.

att,

 
Postado : 01/06/2017 1:53 pm
(@jokaman)
Posts: 44
Eminent Member
Topic starter
 

Brunoxro

Veja o ultimo exemplo que está na planilha. Tenho dois períodos com igual concentração de tarefas (existem dois períodos em que existe a concentração de 5 tarefas), só que uma é durante 28 dias e a outra é de 29 dias, assim o principal período de concentração é o que tem 29 dias.

Não sei se fui claro?

Abr
Jorge Cabral

 
Postado : 02/06/2017 12:38 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa tarde,

Acho que agora entendi, vou testar uma ideia que tive.

att,

 
Postado : 02/06/2017 12:46 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa noite Jorge,

Achei o seu problema bem interessante, me fez me lembrar de um algoritmo que vi num livro.

Como não achei o livro, montei uma solução para achar os valores 'Marra'.

A lógica do código em anexo é bem simples, imagine uma Fita que cada intervalo representa um dia. Essa Fita inicialmente é composta de zero, e cada Tarefa vai cobrindo sua área com o valor 1, no final a fita vai estar coberta com valores 1,2,3... de acordo com a quantidade de 'camadas'.
O Menor dia das datas é o valor 1 da Fita e o Maior dia representa o valor final, a quantidade de intervalos é a quantidade de dias entre o Menor e o Maior.

Acabei abusando um pouco de rotinas de repetição (For, For Each, Do While), por isso acredito que leve um tempo para você entender o código.

O modo de usar é bem simples, coloque os valores nas colunas A:C da planilha de 'Entrada'. Rode o código e na planilha 'Saída' já vai estar os valores classificados e formatados. Pode ser 5 Tarefas ou 1000, não importa, na Planilha 'Saída' vai estar todas as 'camadas' da Fita.

Teste e dê retorno.

att,

 
Postado : 04/06/2017 8:03 pm
(@jokaman)
Posts: 44
Eminent Member
Topic starter
 

Caro Brunoxro

De todos os testes que efetuei, TOP!!!, deram todos certos, vou fazer casos particulares só para testar.

Agora é só melhorar o tempo de calculo. Experimentei com 18 tarefas e demora um pouco.

Será que o desafio fica por aqui ou tem como melhorar o tempo de calculo?

Muito obrigado
Jorge Cabral

 
Postado : 05/06/2017 11:49 am
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa noite,

Coloquei alguns valores de exemplo e até que rodou bem rápido (2 seg) no meu computador.

O que acredito que ganhe tempo melhorando e na organização de dados, a partir da linha 112. Colocar a Fita como uma Array deve acelerar bem o processo, também retirar as parte de copiar/colar e de deletar linhas deve ajudar.

No caso esse desafio para mim fica por aqui, talvez outro coloque do fórum tenha algumas ideias para acelerar o processo.

att,

 
Postado : 05/06/2017 6:07 pm
(@jokaman)
Posts: 44
Eminent Member
Topic starter
 

Alguém aceita o desafio do Brunoxro para tornar mais rápido o seu código?

Obg
Jorge Cabral

 
Postado : 06/06/2017 5:57 pm