Usuário com melhor resposta
Excel - Cálculo com intervalo de tempo

Pergunta
-
Boa tarde a todos.
Gostava de obter ajuda para o seguinte:
Tomando como exemplo - Tenho duas colunas com data e hora - 30/08/2018 21:26 e 31/08/2018 11:47
Preciso de obter outra coluna com o tempo decorrido entre ambas as colunas sem que a contagem inclua o período entre as 22:00 de um dia e as 08:00 do outro.
Ou seja: O tempo das 21:26 às 22:00 somado do tempo das 08:00 às 11:47.
O cálculo seria fácil de fosse introduzir apenas esta linha mas tenho muitas mais e necessito incrementar sempre mais linhas/dados.
Conseguem por favor ajudar?
Muito obrigado.
Respostas
-
Boa noite.
Supondo as datas nas células "B2" e "C2":
=MÁXIMO(0;(INT(B2+1) - 2/24)-B2) + MÁXIMO(0;C2- (INT(C2)+8/24)) + (INT(C2)-INT(B2)-1)* 16/24
Deve funcionar para qualquer intervalo, inclusive múltiplos dias. Favor testar.
Filipe Magno
Ops, esqueci de dois detalhes: quando as duas datas estão no mesmo dia e de desconsiderar a hora inicial e a hora final fora dos limites. Também havia considerado um dia útil de 16 horas, mas na verdade são 14. Acho que agora deve funcionar para todos os casos:
=MÁXIMO(0;(INT(B2+1) - 2/24)-B2) + SE(HORA(B2)<8; B2-INT(B2)-8/24; 0) + MÁXIMO(0;C2- (INT(C2)+8/24)) + SE(HORA(C2)>22; 22/24 - (C2-INT(C2)); 0) + (INT(C2)-INT(B2)-1)* 14/24 + 0,00000001
Obs.: o resíduo somado no final da fórmula é para evitar erros devido à precisão limitada do Excel (poderia ser substituído pela função Truncar ou Arredondar).
Favor testar e ver se atende todos os casos.
Filipe Magno
- Marcado como Resposta Duvida.agora terça-feira, 11 de setembro de 2018 08:20
-
Bom dia.
Realmente tinha um pequeno erro na fórmula: onde está ">22" deveria ser ">=22". Porém, note que pela sua especificação o resultado esperado é "00:00" e não "00:01". Com a correção que estou propondo o resultado será "00:00".
A fórmula final ficou:
=MÁXIMO(0;(INT(B2+1) - 2/24)-B2) + SE(HORA(B2)<8; B2-INT(B2)-8/24; 0) + MÁXIMO(0;C2- (INT(C2)+8/24)) + SE(HORA(C2)>=22; 22/24 - (C2-INT(C2)); 0) + (INT(C2)-INT(B2)-1)* 14/24 + 0,00000001
Por favor, verifique se atende.
Filipe Magno
- Marcado como Resposta Duvida.agora quinta-feira, 31 de janeiro de 2019 12:25
Todas as Respostas
-
Olá.
Nesse seu exemplo, qual seria o resultado esperado?
pelo que entendi bastaria fazer assim:
=A1-A2-(10/24)
Considerando A1 a data mais antiga e que o intervalo entre as datas seja menor que 24 horas
https://inframicrosoft.wordpress.com/
- Editado J. Maurício quinta-feira, 6 de setembro de 2018 16:23
-
Olá.
Nesse seu exemplo, qual seria o resultado esperado?
pelo que entendi bastaria fazer assim:
=A1-A2-(10/24)
Considerando A1 a data mais antiga e que o intervalo entre as datas seja menor que 24 horas
https://inframicrosoft.wordpress.com/
Muito obrigado pela sua resposta (e rápida)!
Já tinha considerado a fórmula que indica mas o que ela faz não é subtrair o espaço de tempo entre as 22:00 e as 08:00 caso a diferença entre as data/hora seja entre um(uns) dia(s) e outro(s).
Imagine os dois exemplos:
31/08/2018 18:10 para 02/09/2018 10:56 devolve 30:46
02/09/2018 12:31 para 02/09/2018 22:21 dá um resultado impossível
Nenhum dos resultados devolve o pretendido.
Actualmente tenho as células formatadas como 37:30:55 em que 31/08 e 02/09 estão na coluna A e 01/09 e 02/09 como coluna B e o resultado na coluna C (actualmente com a fórmula =SE(B-A=0;"";B-A)).
Muito obrigado pela vossa ajuda.
-
Sim. Eu coloquei essa observação.
No seu caso, provavelmente vai ter que considerar domingos e feriados também. Então, a regra não é simplesmente ignorar um período de tempo.
https://inframicrosoft.wordpress.com/
- Editado J. Maurício sexta-feira, 7 de setembro de 2018 23:10
-
Provavelmente teria que ter algo mais elaborado como se vê nesta Thread:
https://inframicrosoft.wordpress.com/
-
Se as datas só envolverem dias úteis, início e término das tarefas estiverem dentro do intervalo válido (08:00-21:59), você poderia usar:
=(B1-A1)-((DIAS(B1;A1)*10)/24)
https://inframicrosoft.wordpress.com/
- Editado J. Maurício sábado, 8 de setembro de 2018 00:19
-
Muito obrigado por tentar ajudar.
Os exemplos que indica não me conseguem ajudar…
O cálculo não tem que envolver especificamente dias de semana, fim de semana ou feriados. O cálculo pode ser para todos os dias corridos sem exceção.
Tem é contar todo o tempo e excluir o período das 22:00 às 08:00 entre um dia e o dia seguinte.
Tentei colocar uma imagem de exemplo e não consegui, já venho aqui tentar outra vez.
-
-
Boa noite.
Supondo as datas nas células "B2" e "C2":
=MÁXIMO(0;(INT(B2+1) - 2/24)-B2) + MÁXIMO(0;C2- (INT(C2)+8/24)) + (INT(C2)-INT(B2)-1)* 16/24
Deve funcionar para qualquer intervalo, inclusive múltiplos dias. Favor testar.
Filipe Magno
-
Boa noite.
Supondo as datas nas células "B2" e "C2":
=MÁXIMO(0;(INT(B2+1) - 2/24)-B2) + MÁXIMO(0;C2- (INT(C2)+8/24)) + (INT(C2)-INT(B2)-1)* 16/24
Deve funcionar para qualquer intervalo, inclusive múltiplos dias. Favor testar.
Filipe Magno
Ops, esqueci de dois detalhes: quando as duas datas estão no mesmo dia e de desconsiderar a hora inicial e a hora final fora dos limites. Também havia considerado um dia útil de 16 horas, mas na verdade são 14. Acho que agora deve funcionar para todos os casos:
=MÁXIMO(0;(INT(B2+1) - 2/24)-B2) + SE(HORA(B2)<8; B2-INT(B2)-8/24; 0) + MÁXIMO(0;C2- (INT(C2)+8/24)) + SE(HORA(C2)>22; 22/24 - (C2-INT(C2)); 0) + (INT(C2)-INT(B2)-1)* 14/24 + 0,00000001
Obs.: o resíduo somado no final da fórmula é para evitar erros devido à precisão limitada do Excel (poderia ser substituído pela função Truncar ou Arredondar).
Favor testar e ver se atende todos os casos.
Filipe Magno
- Marcado como Resposta Duvida.agora terça-feira, 11 de setembro de 2018 08:20
-
ESPETACULAR!!!!
O meu Muito, Muito OBRIGADO!!
Tenho o quadro completo com a sua equação!! Fico-lhe muito agradecido Filipe Magno!!
Testei com as seguintes colunas e resultados (sempre corretos e de encontro ao que eu precisava):
04/09/2018 21:36 05/09/2018 19:58 12:22:00 05/09/2018 10:34 05/09/2018 20:33 9:59:00 22/08/2018 10:11 24/08/2018 07:55 25:49:00 20/08/2018 15:30 20/08/2018 16:01 0:31:00 10/08/2018 09:29 12/08/2018 18:17 36:48:00 Não posso deixar de agradecer igualmente e uma vez mais ao J. Maurício por igualmente tentar ajudar.
BEM HAJAM!!
-
Boa noite.
Supondo as datas nas células "B2" e "C2":
=MÁXIMO(0;(INT(B2+1) - 2/24)-B2) + MÁXIMO(0;C2- (INT(C2)+8/24)) + (INT(C2)-INT(B2)-1)* 16/24
Deve funcionar para qualquer intervalo, inclusive múltiplos dias. Favor testar.
Filipe Magno
Ops, esqueci de dois detalhes: quando as duas datas estão no mesmo dia e de desconsiderar a hora inicial e a hora final fora dos limites. Também havia considerado um dia útil de 16 horas, mas na verdade são 14. Acho que agora deve funcionar para todos os casos:
=MÁXIMO(0;(INT(B2+1) - 2/24)-B2) + SE(HORA(B2)<8; B2-INT(B2)-8/24; 0) + MÁXIMO(0;C2- (INT(C2)+8/24)) + SE(HORA(C2)>22; 22/24 - (C2-INT(C2)); 0) + (INT(C2)-INT(B2)-1)* 14/24 + 0,00000001
Obs.: o resíduo somado no final da fórmula é para evitar erros devido à precisão limitada do Excel (poderia ser substituído pela função Truncar ou Arredondar).
Favor testar e ver se atende todos os casos.
Filipe Magno
Filipe Magno,
Desculpe, outra vez mas venho tentar novamente a sua ajuda e a do Forum.
Aconteceu agora no cálculo o seguinte:
29/1/19 22:10 29/1/19 22:11 0:11:00 Ou seja, o resultado devolveu 11 minutos e não 01 como o é na verdade.
Consegue/em por favor verificar?
Obrigado.
-
Bom dia.
Realmente tinha um pequeno erro na fórmula: onde está ">22" deveria ser ">=22". Porém, note que pela sua especificação o resultado esperado é "00:00" e não "00:01". Com a correção que estou propondo o resultado será "00:00".
A fórmula final ficou:
=MÁXIMO(0;(INT(B2+1) - 2/24)-B2) + SE(HORA(B2)<8; B2-INT(B2)-8/24; 0) + MÁXIMO(0;C2- (INT(C2)+8/24)) + SE(HORA(C2)>=22; 22/24 - (C2-INT(C2)); 0) + (INT(C2)-INT(B2)-1)* 14/24 + 0,00000001
Por favor, verifique se atende.
Filipe Magno
- Marcado como Resposta Duvida.agora quinta-feira, 31 de janeiro de 2019 12:25
-