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
    Respostas
    1. Conseguiu a solução para este problema? Estou com o mesmo problema que vc

      Eliminar
    2. Olá "Unknown", você conseguiu uma planilha para tal? Também preciso de uma fórmula/planilha para calcular 8 horas trabalhadas por dia e descontar feriados entre duas datas, mas de todas fórmulas que pesquisei na Internet, nada resolve e não achei nenhuma calculadora online. Alguém tem um link para uma planilha pronta ou calculadora online? Obrigado

      Eliminar
    3. também estou precisando de uma formula assim... conseguiram galera? help

      Eliminar
    4. Olá
      Neste blog tenho uma planilha que responde a essas dúvidas.
      Caso precise de algo mais específico, envie um exemplo para blog.excelcoisas@gmail.com
      Obrigado

      Eliminar
  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
    Respostas
    1. Olá João, poderia me ajudar por gentileza?

      Preciso calcular as horas uteis entre duas datas distintas 30/04/2021 13:34 | 06/05/2021 10:20 considerando o inicio do trabalho as 08:00 e o fim as 19:00 e também desconsiderando finais de semana e feriados.
      *Não consegui anexar nenhum arquivo.

      Eliminar
    2. Bom dia
      Veja por favor o post http://exceleoutrascoisas.blogspot.com/2014/05/calcular-horas-extra-turno-nocturno.html
      Criei uma planilha que calcula todo o tipo de horas de trabalhos.
      Se não conseguir baixar, por favor envie pedido para blog.excelcoisas@gmail.com

      Eliminar
  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
  9. Tiveram algum exito com final de semana e feriado?

    ResponderEliminar
  10. João, vê se você consegue me ajudar por favor!!!
    Preciso fazer uma fórmula no excel que de segunda a sexta só podem ser utilizados 10 horas úteis (de 8h as 18h) de SLA.
    Se a pessoa chegou as 17 horas, de segunda, contasse 1h desse dia e continua a contagem na terça as 8h, terminando o prazo de SLA as 17h.
    Nos sábados o SLA são de 6h (de 8h as 14h)
    Nos domingos e feriados não são contados o SLA, ou seja se a pessoa abriu o chamado as 10h de sábado são condados 2h de SLA de sábado e o restante na segunda.

    Obs: Não consegui fazer download da sua planilha

    ResponderEliminar
  11. João, vê se você consegue me ajudar por favor!!!
    Preciso fazer uma fórmula no excel que de segunda a sexta só podem ser utilizados 10 horas úteis (de 8h as 18h) de SLA.
    Se a pessoa chegou as 17 horas, de segunda, contasse 1h desse dia e continua a contagem na terça as 8h, terminando o prazo de SLA as 17h.
    Nos sábados o SLA são de 6h (de 8h as 14h)
    Nos domingos e feriados não são contados o SLA, ou seja se a pessoa abriu o chamado as 10h de sábado são condados 2h de SLA de sábado e o restante na segunda.

    Obs: Não consegui fazer download da sua planilha

    ResponderEliminar
  12. Olá, esta formula é quase exatamente o que eu preciso em questão de contas, não existe um meio de faze-la desconsiderar os fins de semana? É somente isso que não deixa ela perfeita pra mim.

    Se possível me dar uma mão com esta questão será de grande ajuda!!

    ResponderEliminar
    Respostas
    1. Olá Bruno
      Explique melhor a sua dúvida enviando mail para blog.excelcoisas@gmail.com

      Eliminar

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)

VBA EXCEL - OCULTAR LINHAS EM BRANCO (Hide Blank Rows)