Resumo:
Eu sei que a função NETWORKDAYS
pode ser usada para encontrar o número de negócios dias (= excluindo fins de semana e feriados) entre duas datas. Mas e se eu quiser saber o número de negócios horas entre, digamos, ontem, 14:00 e hoje 10:00?
- > Eu preciso de uma função NETWORKINGHOURS
que não existe (Excel 2003). Em essência, use NETWORKDAYS
e adicione dois parâmetros adicionais start of working day
e end of working day
. Parece simples, mas minhas tentativas de criá-lo pela fórmula rapidamente se tornam muito complexas.
Pergunta:
Como posso fazer meu networkhours
funcionar mesmo quando a hora final do dia é anterior à hora do início?
Detalhes:
Eu tenho uma planilha do Excel com duas colunas de data e hora. Quero calcular o número de dias + horas + minutos entre os timestamps, mas só contarei o horário comercial.
A função NETWORKDAYS
pode ser usada para encontrar os dias úteis excluindo fins de semana e feriados (subtraindo 2 de seu resultado, porque a função conta o dia de início e o dia de término, independentemente do horário). Por enquanto, tudo bem. Parece com isso ( inspiração daqui ):
=CONCATENATE(NETWORKDAYS($A6;B6;holidays)-1
;"d "
;HOUR(MIN(endofday;MOD(B6;1))-MAX(startofday;MOD($A6;1)))
;":"
;IF(MINUTE(MIN(endofday;MOD(B6;1))-MAX(startofday;MOD($A6;1)))>9
;MINUTE(MIN(endofday;MOD(B6;1))-MAX(startofday;MOD($A6;1)))
;CONCATENATE("0";MINUTE(MIN(endofday;MOD(B6;1))-MAX(startofday;MOD($A6;1))))))
dá-me resultados muito bons no formato 1d 2:30
assumindo que nomeei células para startofday
(08:00), endofday
(16:00) e holidays
( coluna com valores de data).
Isso funciona muito bem , exceto que a fórmula é interrompida quando a hora final do dia é anterior à hora do início do dia. Veja meus dados e fórmulas de teste:
networkdays-2 =NETWORKDAYS($A6;B6;holidays)-2
horas =MIN($B$3;MOD(B6;1))-MAX($A$3;MOD(A6;1))
minutos =MINUTE(MIN(endofday;MOD(B6;1))-MAX(startofday;MOD($A6;1)))
networkhours veja o bloco de códigos acima