CALCULAR HORAS ENTRE DUAS DATAS COM UMA CONDIÇÃO (Calculate Hours Between Two Dates with a Condition)

O cálculo com unidades de tempo (horas, dias, etc.) tem sido um dos temas mais recorrentes aqui no blog.

Há alguns dias atrás, puseram-me uma questão interessante. Tratava-se de calcular o número de horas entre duas datas, subtraindo um determinado conjunto de horas (16) a cada dia do intervalo, caso esse intervalo fosse superior a 24 horas.

Apresentei duas soluções para chegar ao mesmo resultado:

Na primeira, utilizei a função SE para criar um conjunto de condições (Tabela 1).
Na segunda, utilizei as funções DATADIF (que já foi objecto de um post - http://exceleoutrascoisas.blogspot.pt/search/label/DATADIF) e TEMPO.


Fórmulas da Tabela 1:
D4 =SE((C4-B4)*24<16;(C4-B4)*24;SE(E((C4-B4)*24>=16;(C4-B4)*24<=24);(C4-B4)*24-16;SE((C4-B4)*24>24;(C4-B4)*24-(ARRED((C4-B4)*24/24;0)*16)))))
- A formatação da célula é 0,00
E4 =(SE((C4-B4)*24<16;(C4-B4)*24;SE(E((C4-B4)*24>=16;(C4-B4)*24<=24);(C4-B4)*24-16;SE((C4-B4)*24>24;(C4-B4)*24-(ARRED((C4-B4)*24/24;0)*16)))))/24 
- A formatação da célula é [hh]:mm

Fórmula da Tabela 2:
D12 =C12-B12-DATADIF(B12;C12;"d")*TEMPO(16;0;0)
- A formatação da célula é [hh]:mm

Time units calculation (hours, days, etc.) has been one of the most frequently issues here in the blog.

A few days ago, someone put me an interesting question. It was abour calculating the number of hours between two dates by subtracting a set of hours (16) in each day in the range if that range was longer than 24 hours.

I have presented two solutions to reach the same result:

In the first one, I used the IF function to create a set of conditions (Table 1).
In the second, I used DATEDIF function (which has been the subject of a post - http://exceleoutrascoisas.blogspot.pt/search/label/DATADIF) and TIME function.



Formulas in Table 1:
D4 =IF((C4-B4)*24<16,(C4-B4)*24,IF(AND((C4-B4)*24>=16,(C4-B4)*24<=24),(C4-B4)*24-16,IF((C4-B4)*24>24,(C4-B4)*24-(ROUND((C4-B4)*24/24,0)*16)))))
- Cell format is 0.00
E4 =(IF((C4-B4)*24<16,(C4-B4)*24,IF(AND((C4-B4)*24>=16,(C4-B4)*24<=24),(C4-B4)*24-16,IF((C4-B4)*24>24,(C4-B4)*24-(ROUND((C4-B4)*24/24,0)*16)))))/24 
- Cell format is [hh]: mm

Formula in Table 2:
D12 = C12-B12-DATEDIF (B12, C12, "d") * TIME (16, 0, 0)
- Cell format is [hh]: mm

Comentários

  1. E SE EU QUISER CONSIDERAR QUE O DIA TEM AS 24 HORAS AO INVES DE SOMENTE 16??

    ResponderEliminar
  2. Este comentário foi removido pelo autor.

    ResponderEliminar
  3. Olá, estou com uma questão parecida, tenho DATA DE APRESENTAÇÃO 27/04/2015 e DATA DE SOLICITAÇÃO, preciso diminuir a DATA DE APRESENTAÇÃO 27/04/2015 da DATA DE SOLICITAÇÃO 24/04/2015, porém considerando o total de horas entre estes 3 dias, desconsiderando estas 08:00 trabalhadas acima. Teria como adaptar esta fórmula, preciso apenas do total de horas entre todos estes dias, existiria outra fórmula caso esta não possa ser adaptada ????

    ResponderEliminar
  4. Lucas Carnaúba de Oliveira29 de julho de 2015 às 17:33

    Eu consigo extrair apenas as horas úteis?

    ResponderEliminar
    Respostas
    1. Olá
      Pode descrever melhor a sua dúvida ou enviar um exemplo para blog.excelcoisas@gmail.com
      Obrigado

      Eliminar
  5. Fala ai Joao, beleza? A fórmula atenderia as premissas abaixo?

    1) considerar somente 8 horas trabalhadas
    2) Desconsiderar feriados.
    3) Desconsiderar horario de almoco de 12 as 13.

    Desde já agradeço camarada.

    Abs mestre.

    ResponderEliminar
  6. Bom dia Amigo!
    Cara, preciso extrair o final de semana de algumas datas!

    Por exemplo: 01/07/2016 13:34 | 04/07/2016 13:54 27:20:40 ---> Esse reultado não está desconsiderando o final de semana (no meu caso menos 18 horas.

    Grato pela ajuda!

    Diogo Oliveira.

    ResponderEliminar
  7. Olá Diogo
    Por exemplo, se tomar a 1ª parcela como A1 e a segunda como B1, e considerando que A1 é uma sexta-feira e B1 uma segunda-feira, em C1 vai colocar a seguinte fórmula:
    =SE(E(DIA.SEMANA(A1)=6;DIA.SEMANA(B1)=2);B1-A1-"48:00";B1-A1)

    ResponderEliminar
  8. Bom dia João !
    Não consegui utilizar esta fórmula.

    Também estou precisando desconsiderar final de semana e feriados.

    Fico no aguardo, obrigado.

    ResponderEliminar

Enviar um comentário

Mensagens populares deste blogue

EXCEL 2007 - FUNÇÕES PARA CALCULAR HORAS (Functions to Calculate Hours)

CONVERTER HORAS EM DIAS DE TRABALHO (Convert Hours to Workdays)

EXCEL - SUBSTITUIR PONTO POR VÍRGULA (Changing comma to point) ou vice-versa