Calculando número decrescente de dias no Excel

0

Estou tentando descobrir como prever quanto tempo levará para que um processo alcance o atraso. O processo leva 26 dias para processar 30 dias de dados. Ele é executado no dia 1 com o processamento dos dados que foram concluídos mais recentemente, quando começaram novamente até 30 dias antes. Depois que esse processo for concluído, ele será executado novamente, puxando o próximo lote de até 30 dias antes do tempo de execução atual, que ainda não foi processado.

1ª execução: 30 dias de dados, concluídos em 26 dias 2ª execução: como agora existem apenas 26 dias de dados não processados, é executado até processar 26 dias de dados ... Então, até que seja pego e possa processar o trabalho mais recente dentro de 1 dia.

Aqui está uma cópia dos valores que calculei até agora, embora não tenha certeza se eles estão completamente certos e tenho certeza de que há uma maneira muito melhor de calcular isso mais dinamicamente.

  • A2 = 30/26
  • A coluna
  • B é apenas uma acumulação de A2
  • C5 = A5 - 30
  • Restante da coluna C = Célula acima dela + $ A $ 2
  • D Coluna: = SE (C6 > A6, "Sim", "Não")

De acordo com os cálculos acima, ele não seria pego até 16/07/18.

Tem de haver uma maneira MUITO melhor para calcular isso!

    
por BondUniverse 18.12.2017 / 22:35

2 respostas

1

Eu abordaria isso de uma maneira diferente, usando uma suposição sobre o tempo necessário para processar um determinado número de dias de dados.

A suposição é que o tempo necessário é proporcional à quantidade de dados. Em outras palavras, se levar 26 dias para processar 30 dias de dados, levaria apenas 13 dias para processar 15 dias de dados.

Portanto, se a primeira execução levar 26 dias (e deixar 26 dias de dados a serem processados), a segunda execução deve levar 26/30 o tempo todo. Esse processo é repetido e a tabela abaixo mostra o tempo necessário para execuções subseqüentes.

A fórmula em B3 é: =B2*26/30 . Isso é preenchido até que o tempo de execução seja menor que um dia.

Como mostrado na última linha, a execução 24 demora menos de 1 dia e o processo é "capturado". O tempo total para todas as execuções é de 188,7 dias. Se uma corrida não puder ser iniciada no mesmo dia em que a corrida anterior terminou, convém arredondar o tempo de cada corrida antes de totalizar.

Paracalcularadatade"catch up", use =TODAY()+188.7 . Eu recebo 6/24/18

    
por 18.12.2017 / 23:44
1

Todos os dias, completam 30/26 dias, mas um dia passa. Portanto, o ganho líquido é de [(30/26) -1] dias por dia. Isso resulta em obter um extra de 26/4 de um dia todos os dias. Isso significa que leva 26/4 dias para alcançar um dia. Para recuperar até 30 dias, ele precisa de 30 * (26/4) dias. Podemos cancelar para obter 30 * 13/2, em seguida, cancelar novamente para obter 15 * 13, que é 195.

Existem várias complicações nesse cálculo, no entanto. Por exemplo, se você considerar que o processo está "preso" quando o backlog é menor que um dia, como a resposta de Bandersnatch parece fazer, minha resposta superestimará o tempo necessário. Por outro lado, se cada iteração tiver que ser um número inteiro de dias, isso subestimá-lo-á. Etc.

Este é o mesmo princípio básico que está por trás da solução do quebra-cabeça da abelha: link

    
por 19.12.2017 / 01:17