Como calcular no excel horas uteis de uma tabela

Anônima
2023-08-30T14:44:56+00:00

Tenho Excel 2013 em português :
Vou colocar abaixo as informações e cenários aos quais não consigo encontrar uma formula ou uma função em vba para resolver.

A idéia e que nesta tabela criada no planilha excel 2013 seja feito o calculo das horas uteis.
Penso algo em formulas ou em vba que faça um laço de linha por linha para efetuar este calculo gravando em uma coluna.
Tenho uma tabela com dois campos que são data e hora inicio do chamado e data hora fim do chamado. o formato esta dd/mm/aaaa hh:mm:ss
Preciso calcular qual foi as horas uteis que levamos para fechar o chamado.

Regras :

  1. O horário de trabalho é das 9:00 as 18:00 de segunda a sexta com 1 hora de almoço
  2. Tem que desconsiderar sábado domingo e feriados, tenho uma tabela de feriados.
  3. Se a data da abertura do chamado não for no dia útil ou antes das 9:00hs considerar o primeiro dia útil como inicio as 9:00hs
  4. Se encerrado após as 18:00hs considerar 18:00hs para encerramento .
  5. O tempo de horas uteis por dia do colaborador é 8hs.
  6. Para os dias que forem cheios (9:00hs) deve descontar 1 hora de almoço conforme item 1.
  7. Se a data encerramento nao for em dias útil considerar primeiro dia útil como encerramento as 9:00hs

Hora Inicio do Chamado: 01/11/21 11:43:36
Hora Fim do Chamado: 10/11/21 11:07:50

O Resultado horas úteis deve ser : 56:24:14

OBS: Vejam no exemplo abaixo que foi desconsiderado os dias 06/11 e 07/11 por ser final de semana porem poderia haver tambem um feriado e desta forma seria desconsiderado como dia util.

Inicio Período Fim do Período Horas Total Horas Uteis
segunda-feira, 01/11/2021 11:43:36 segunda-feira, 01/11/2021 18:00:00 6:16:24 6:16:24
terça-feira, 02/11/2021 09:00:00 terça-feira, 02/11/2021 18:00:00 9:00:00 8:00:00
quarta-feira, 03/11/2021 09:00:00 quarta-feira, 03/11/2021 18:00:00 9:00:00 8:00:00
quinta-feira, 04/11/2021 09:00:00 quinta-feira, 04/11/2021 18:00:00 9:00:00 8:00:00
sexta-feira, 05/11/2021 09:00:00 sexta-feira, 05/11/2021 18:00:00 9:00:00 8:00:00
sábado, 06/11/2021 09:00:00 sábado, 06/11/2021 18:00:00 9:00:00
domingo, 07/11/2021 09:00:00 domingo, 07/11/2021 18:00:00 9:00:00
segunda-feira, 08/11/2021 09:00:00 segunda-feira, 08/11/2021 18:00:00 9:00:00 8:00:00
terça-feira, 09/11/2021 09:00:00 terça-feira, 09/11/2021 18:00:00 9:00:00 8:00:00
quarta-feira, 10/11/2021 09:00:00 quarta-feira, 10/11/2021 11:07:50 2:07:50 2:07:50
Total 80:24:14 56:24:14

Já tentei usar as formulas do excel, porem sem sucesso.

  • DIATRABALHOTOTAL.INTL,
  • DIATRABALHOTOTAL
  • DIAS

Conto com a colaboração de voces.

Microsoft 365 e Office | Excel | Para empresas | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários

3 respostas

Classificar por: Mais útil
  1. Dio Xavier 292.7K Pontos de reputação Moderador Voluntário
    2023-08-31T14:42:28+00:00

    Olá

    Conforme informado o suporte esta ativo apenas para edições acima do Office 2016 e Microsoft 365, assim sendo a solução abaixo funciona nestas edições:

    1. Pressione ALT + F11 para abrir o Editor VBA.
    2. Clique em "Inserir" no menu e escolha "Módulo". Isso criará um novo módulo onde você pode inserir seu código.
    3. Cole o seguinte código no módulo:
    Function CalcularHorasUteis(inicio As Date, fim As Date) As Double Dim horasUteis As Double Dim dataAtual As Date horasUteis = 0 dataAtual = inicio Do While dataAtual <= fim If Weekday(dataAtual, vbMonday) <= 5 And _ dataAtual >= DateValue("9:00:00") And dataAtual <= DateValue("18:00:00") Then If Weekday(dataAtual, vbMonday) = 5 Then ' Sexta-feira horasUteis = horasUteis + (DateValue("18:00:00") - dataAtual) Else horasUteis = horasUteis + 8 * 3600 ' 8 horas úteis End If End If dataAtual = DateAdd("d", 1, dataAtual) dataAtual = DateSerial(Year(dataAtual), Month(dataAtual), Day(dataAtual)) + TimeValue("09:00:00") Loop CalcularHorasUteis = horasUteis / 3600 ' Converter para horasEnd Function <br> ---
    1. Feche o Editor VBA.
    2. Na sua planilha, você pode usar a função CalcularHorasUteis como uma fórmula nas células. Por exemplo, se a data de início estiver na célula A2 e a data de término na célula B2, você pode inserir a fórmula na célula onde deseja exibir o resultado:
    =CalcularHorasUteis(A2, B2) <br> ---

    Esta resposta foi útil?

    1 pessoa achou esta resposta útil.
    0 comentários Sem comentários
  2. Anônima
    2023-08-31T12:29:02+00:00

    Olá

     

    Bem vindo à Comunidade Microsoft 365 e Office .

     

     

    Tudo bem, Claudiney R. Silva? O Suporte ao Office 2013 terminou em 11 de abril de 2023. A Microsoft não fornece mais suporte técnico, correções de bugs ou correções de segurança para vulnerabilidades do Office 2013 que podem ser relatadas ou descobertas posteriormente. Isso inclui atualizações de segurança que podem ajudar a proteger seu computador contra vírus, spyware e outros softwares mal-intencionados.

     

    1. Você não receberá mais atualizações de software do Office 2013 do Microsoft Update e ISOs para instalação.

     

    1. Você não receberá mais suporte técnico por telefone, fóruns ou chat.

     

    1. Nenhuma atualização adicional ao conteúdo de suporte será fornecida e a maior parte do conteúdo de ajuda online esta desativada.

    Agradeço seu retorno e já temos o acesso ao OFFICE 365, porem minha duvida se baseia na montagem logica do VBA a qual mesmo sem suporte é totalmente aderente a necessidade.

    Esta resposta foi útil?

    0 comentários Sem comentários
  3. Dio Xavier 292.7K Pontos de reputação Moderador Voluntário
    2023-08-30T22:11:09+00:00

    Olá

    Bem vindo à Comunidade Microsoft 365 e Office .

    Tudo bem, Claudiney R. Silva? O Suporte ao Office 2013 terminou em 11 de abril de 2023. A Microsoft não fornece mais suporte técnico, correções de bugs ou correções de segurança para vulnerabilidades do Office 2013 que podem ser relatadas ou descobertas posteriormente. Isso inclui atualizações de segurança que podem ajudar a proteger seu computador contra vírus, spyware e outros softwares mal-intencionados.

    1. Você não receberá mais atualizações de software do Office 2013 do Microsoft Update e ISOs para instalação.
    2. Você não receberá mais suporte técnico por telefone, fóruns ou chat.
    3. Nenhuma atualização adicional ao conteúdo de suporte será fornecida e a maior parte do conteúdo de ajuda online esta desativada.

    Esta resposta foi útil?

    0 comentários Sem comentários