Horas de parada para cada turno dentro de um intervalo

Engenharia Curso superior
Tenho uma planilha onde são lançados os tempos de parada inicio e fim com data e hora na celula, exemplo de um apontamento: tenho em uma coluna um apontamento 06/09/19 17:00 e na coluna do lado o fechamento desse apontamento com a data e a hora que resolveu (mesma linha) 09/09/19 04:00. Trabalho em turno, turno A de 6-15 turno B 15-22:52 e turno C 22:52- 6 .. quero calcular dentro desse periodo de parada ai, quantas horas foram em cada turno. como faço ?
Foto de Isabella P.
Isabella perguntou há 4 anos

Sabe a resposta?

Ganhe 10 pts por resposta de qualidade
Responder dúvida
1 resposta
0
votos
Nenhum usuário votou nessa resposta como útil.
Professor Leandro S.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 4 anos

Infelizmente não conheço nenhuma fórmula do Excel que faça exatamente isso ou uma simples intersecção de intervalos de tempo, então temos que fazer uma fórmula ligeiramente extensa mesmo.

No final da resposta eu vou dar a fórmula completa, mas só para que você entenda o raciocínio, vou explicar em detalhes como pensei:

Seja o turno diário o intervalo [a,b] em horas e a duração do apontamento o intervalo [x,y]. A ideia é contar, separadamente, as horas trabalhadas no primeiro dia, nos dias completos e no último dia, para cada turno.

  • PRIMEIRO DIA

Podemos enxergar três casos, em que o início do apontamento começa antes de um turno, no meio ou após.

     x --- ----- --- y     Total de horas  
Caso I  a --- ----- ----- ----- ----- ---> y - x a < x < y
Caso II     a --- ----- ----- ---> y - a x < a < y
Caso III         a --- ---> y - y = 0 x < y < a
              y - med(a,x,y)  

Vemos que é sempre y menos o valor do meio entre a,x e y.

  • DIAS INTERMEDIÁRIOS

Esses dias são completos, desde 0h até 24h, então sendo N o número de dias completos, as horas trabalhadas serão N*(y-x).

  • ÚLTIMO DIA

Podemos enxergar também três casos, em que o fim do apontamento termina antes de um turno, no meio ou após.

       x --- ----- --- y   Total de horas  
Caso I ----- --- b         x - x = 0 b < x < y
Caso II ----- ----- ----- --- b     b - x x < b < y
Caso III ----- ----- ----- ----- ----- --- b y - x  x < y < b
              med(b,x,y) - x  

Vemos que é sempre o valor do meio entre b,x e y menos o x.

No fim teremos algo assim:

y - med(a,x,y) + N*(y-x) + med(b,x,y) - x

  • FÓRMULAS EXCEL

Agora basta somar essas três parcelas e substituir os valors de x, y, a e b para os valores reais.

Para representar um valor em horas, minutos e segundos, usaremos a função TEMPO([horas]; [minutos]; [segundos]) (TIME em inglês). Portanto, usando o turno B como exemplo:

x   TEMPO(15;0;0)
y   TEMPO(22;52;0)

Para obter o tempo da data de começo e fim, usaremos as funções HORA, MINUTO, SEGUNDO (HOUR, MINUTE, SECOND em inglês) para preencher os argumentos da função TEMPO. Estando a data de começo e fim de um apontamento nas células A2 e B2 respectivamente:

a   TEMPO(HORA(A2); MINUTO(A2); SEGUNDO(A2))
b   TEMPO(HORA(B2); MINUTO(B2); SEGUNDO(B2))

Para a mediana temos a função MED (MEDIAN em inglês).

E finalmente para o cálculo de dias completos, usamos a função DIAS([começo], [fim]) (DAYS em inglês), mas como ele conta o último dia, vamos subtrair de 1.

Para o turno A, por exemplo teremos:

  A B C
1 COMEÇO FIM Horas trabalhadas (turno A)
2 10/11/2019 5:00:00 15/10/2019 12:30:00

=TEMPO(15;0;0)-MED(TEMPO(HORA($A2);MINUTO($A2);SEGUNDO($A2));TEMPO(6;0;0);TEMPO(15;0;0))

+(DIAS($B2;$A2)-1)*(TEMPO(15;0;0)-TEMPO(6;0;0))

+MED(TEMPO(HORA($B2);MINUTO($B2);SEGUNDO($B2));TEMPO(6;0;0);TEMPO(15;0;0))-TEMPO(6;0;0)

Caso o apontamento tenha começado e terminado no mesmo dia, a função continuará válida pois o tempo a mais contado no primeiro e último dias serão descontados no valor negativo que resultará na conta dos dias intermediários. Essa fórmula também funciona para o turno B.

Já para o turno C temos uma pequena complicação na qual o turno é dividido no dia (de manhã até as 6h e à partir das 22h52 à noite). Nesse caso não temos opção senão considerar como dois turnos diferentes (um começando às 0h00 até 6h e outro das 22h52 ate 24h00) e somá-los. Como TEMPO(24;0;0) é considerado como 0:00:00, tive que mudar a função de mediana para a função de MAX. Aproveitei também para trocar a outra mediana pela função MIN apenas para retirar o valor TEMPO(0;0;0) da fórmula que já era grande.

No final temos, para os três turnos:

  A B C
1 COMEÇO FIM Turno A
2 10/11/2019 5:00:00 15/10/2019 12:30:00

=TEMPO(15;0;0)-MED(TEMPO(HORA($A2);MINUTO($A2);SEGUNDO($A2));TEMPO(6;0;0);TEMPO(15;0;0))

+(DIAS($B2;$A2)-1)*(TEMPO(15;0;0)-TEMPO(6;0;0))

+MED(TEMPO(HORA($B2);MINUTO($B2);SEGUNDO($B2));TEMPO(6;0;0);TEMPO(15;0;0))-TEMPO(6;0;0)

3 COMEÇO FIM Turno B
4 10/11/2019 5:00:00 15/10/2019 12:30:00

=TEMPO(15;0;0)-MED(TEMPO(HORA($A4);MINUTO($A4);SEGUNDO($A4));TEMPO(15;0;0);TEMPO(22;52;0))

+(DIAS($B4;$A4)-1)*(TEMPO(15;0;0)-TEMPO(22;52;0))

+MED(TEMPO(HORA($B4);MINUTO($B4);SEGUNDO($B4));TEMPO(15;0;0);TEMPO(22;52;0))-TEMPO(6;0;0)

5 COMEÇO FIM Turno C
6 10/11/2019 5:00:00 15/10/2019 12:30:00

TEMPO(6;0;0)-MIN(TEMPO(HORA($A6);MINUTO($A6);SEGUNDO($A6));TEMPO(6;0;0))

+(DIAS($B6;$A6)-1)*(TEMPO(6;0;0))

+MIN(TEMPO(HORA($B6);MINUTO($B6);SEGUNDO($B6));TEMPO(6;0;0))

+TEMPO(24;0;0)-MAX(TEMPO(HORA($A6);MINUTO($A6);SEGUNDO($A6));TEMPO(22;52;0))

+(DIAS($B6;$A6)-1)*(TEMPO(24;0;0)-TEMPO(22;52;0))

+MAX(TEMPO(HORA($B6);MINUTO($B6);SEGUNDO($B6));TEMPO(22;52;0))-TEMPO(22;52;0)

Aí seria só você mudar as referências para as células certas na sua tabela.

(Se você souber programar em VBA eu recomendaria criar uma função para isso, já que na fórmula que criei tem muitas repetições e ficou relativamente longa, mas ainda é válida.)

Espero ter ajudado.

























Envie uma dúvida gratuitamente

Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.

Professores particulares de Engenharia

+ Ver todos
Encontre professor particular para te ajudar nos estudos
R$ 60 / h
Willian K.
Imperatriz / MA
Willian K.
4,4 (40 avaliações)
Horas de aulas particulares ministradas 255 horas de aula
Tarefas resolvidas 14 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
Análise Estrutural Sistemas Estruturais Engenharia - Planta Baixa em AutoCad
Graduação: Engenharia Civil (UFGD)
Professor de engenharia civil e de matérias básicas para ensino superior com mais de 500h ministradas. Agende a sua aula!
R$ 60 / h
Pedro B.
Belo Horizonte / MG
Pedro B.
4,7 (66 avaliações)
Horas de aulas particulares ministradas 186 horas de aula
Tarefas resolvidas 1 tarefa resolvida
Identidade verificada
  • CPF verificado
  • E-mail verificado
Mecânica dos Fluídos 2 Técnico em Engenharia Engenharia no Ensino Médio
Graduação: Engenharia de Telecomunicações (FUMEC)
Ensino Matemática, Física, Química