Como calcular o tempo decorrido — em dias, meses ou anos — entre duas datas e horas no Excel?
Ao gerir horários, acompanhar cronogramas de projetos ou analisar registos de eventos no Excel, é comum precisar de determinar o tempo decorrido entre dois momentos específicos. Por exemplo, ao dispor de duas listas — uma com horas de início e outra com horas de fim — poderá querer calcular rapidamente a duração correspondente a cada par na mesma linha, tal como ilustrado na imagem abaixo. Esta funcionalidade revela-se extremamente útil para reportar horas de trabalho, calcular idades ou monitorizar prazos com precisão.
Calcular tempo decorrido/dias/meses/anos com fórmula
Utilizar código VBA para calcular diretamente o tempo decorrido
Calcular tempo decorrido/dias/meses/anos com fórmula
Calcular tempo decorrido
O Excel facilita o cálculo da diferença entre duas horas — ideal para cenários como registo de turnos de funcionários, cálculo de tempos de resposta ou acompanhamento do progresso de projetos. Para horas no mesmo dia, siga estes passos:
1. Clique numa célula vazia onde deseja que o tempo decorrido seja exibido (por exemplo, a célula C2) e introduza a seguinte fórmula:
=IF(B2<A2,1+B2-A2, B2-A2)A2 deve conter a hora de início e B2, a hora de fim. Esta fórmula lida com situações em que a hora de fim seja anterior à hora de início — como nos turnos que atravessam a meia-noite — garantindo um cálculo sempre preciso.2. Após introduzir a fórmula, prima Enter. Para aplicar esta fórmula a outras linhas, utilize a alça de preenchimento: clique no pequeno quadrado no canto inferior direito da célula e arraste-o para baixo até abranger todos os registos adicionais — assim calcula automaticamente os tempos decorridos para múltiplas entradas.
3. Com as células de resultado ainda selecionadas, clique com o botão direito do rato para abrir o menu de contexto e escolha Definir formato de célula. Na caixa de diálogo Definir formato de célula, no separador Número, selecione Hora na lista à esquerda. À direita, escolha o formato de hora pretendido (como hh:mm, h:mm:ss, etc.) para apresentar os resultados como tempos decorridos claros e legíveis.
4. Clique em OK para aplicar a formatação. Os valores de hora serão agora apresentados de acordo com a sua seleção, facilitando a interpretação das durações totais.
Dicas adicionais:
- Certifique-se de que as colunas de hora de início e de fim estejam formatadas como horas válidas do Excel para evitar erros.
- Se prevê que algumas horas de fim ocorram no dia seguinte (por exemplo, em turnos noturnos), a fórmula acima acomoda essa situação adicionando 1 — correspondente a um dia completo — sempre que necessário.
- Se encontrar um erro «#VALOR!», verifique se existem células vazias ou entradas incorretamente formatadas nas suas células de origem.
Calcular dias, meses ou anos decorridos
Determinar o número de dias, meses ou anos entre duas datas é essencial no planeamento de projetos, no cálculo de períodos de serviço ou na determinação de idades. Eis uma abordagem eficiente para cada caso:
Para dias decorridos, clique numa célula vazia (por exemplo, C2) e introduza a fórmula:
=B2-A2Aqui, A2 é a data de início e B2 é a data de término. Após premir Enter, arraste a alça de preenchimento para baixo para aplicar o cálculo às linhas adicionais.
Notas: Certifique-se de que ambas as datas utilizam o formato de data do Excel; caso contrário, o resultado poderá estar incorreto. Se pretender contar apenas dias inteiros (ignorando horas e minutos), esta fórmula é a ideal.
Para calcular os meses entre duas datas, introduza numa célula vazia:
=DATEDIF(A2,B2,"m")Esta fórmula devolve o número de meses completos decorridos. Se os meses parciais forem relevantes, pode também apresentar meses fracionários combinando-os com os dias correspondentes.Para anos (incluindo anos parciais), utilize:
=DATEDIF(A2,B2,"y")Se pretender os anos em formato decimal, pode tentar =DATEDIF(A2,B2,"m")/12e formate a célula do resultado como número para maior precisão.Precauções:
- Se a Data de Término for anterior à Data de Início, estas fórmulas devolverão valores negativos — considere adicionar uma validação.
- Certifique-se de introduzir DATEDIF com atenção — um erro ortográfico fará com que o Excel devolva o erro «#NOME?», já que esta função não aparece no menu padrão de funções do Excel.
Calcular anos, meses e dias decorridos num formato combinado
Se a sua tarefa exigir uma análise mais detalhada (por exemplo, «2 anos, 6 meses e 19 dias»), o Excel pode resolvê-la utilizando a função DATEDIF em combinação. Esta solução é ideal para calcular a antiguidade de colaboradores, idades ou qualquer cenário que exija uma separação clara entre anos, meses e dias.
Selecione uma célula vazia (por exemplo, C2) e introduza a seguinte fórmula:
=DATEDIF(A2,B2,"Y") & " Years, " & DATEDIF(A2,B2,"YM") & " Months, " & DATEDIF(A2,B2,"MD") & " Days"Em seguida, prima EnterIsto combina vários cálculos DATEDIF para gerar uma cadeia legível que mostra o período exato de tempo decorrido.
Se precisar de aplicar a fórmula a várias linhas, utilize a alça de preenchimento, tal como fez anteriormente. Recomendamos que formate a coluna resultante como «Geral» para garantir que o texto seja apresentado corretamente.
Dica útil: Se o seu cálculo incluir anos bissextos ou datas com meses de duração variável, pode ter a certeza de que a função DATEDIF calcula com precisão, respeitando os meses e anos do calendário.
Resolução de problemas e lembretes:
- Verifique sempre com atenção os seus Dados de Origem em busca de células vazias ou formatação incorreta de data/hora.
- Se detetar erros, tente reformatar as colunas de entrada como «Data» ou «Hora» para uniformizar os dados introduzidos.
- Se as fórmulas não atualizarem após editar a célula de origem, prima F9 para forçar o recálculo ou verifique se o cálculo automático está ativado nas opções do Excel.
Código VBA para calcular o tempo decorrido entre duas datas e horas
Se precisar de automatizar cálculos ou processar grandes volumes de dados, o VBA é uma ferramenta poderosa. Por exemplo, pode consolidar os resultados do tempo decorrido numa única célula ou adaptar o cálculo exatamente às suas necessidades.
1. Aceda a Ferramentas de Programador > Visual Basic; abrir-se-á uma nova janela do Microsoft Visual Basic para Aplicações. Clique em Inserir > Módulo e cole o seguinte código:
Sub CalcElapsedTimeBySelection()
Dim startRange As Range
Dim endRange As Range
Dim outputCell As Range
Dim ws As Worksheet
Dim i As Long
Dim rowCount As Long
Dim elapsedTime As Double
Dim startTime As Variant, endTime As Variant
Dim xTitleId As String
xTitleId = "Kutools for Excel"
On Error Resume Next
' Prompt user for ranges
Set startRange = Application.InputBox("Select the range for Start Time:", xTitleId, Type:=8)
If startRange Is Nothing Then Exit Sub
Set endRange = Application.InputBox("Select the range for End Time:", xTitleId, Type:=8)
If endRange Is Nothing Then Exit Sub
Set outputCell = Application.InputBox("Select the top-left cell for output results:", xTitleId, Type:=8)
If outputCell Is Nothing Then Exit Sub
On Error GoTo 0
' Check matching range sizes
If startRange.Rows.Count <> endRange.Rows.Count Then
MsgBox "The start and end time ranges must have the same number of rows.", vbExclamation, xTitleId
Exit Sub
End If
' Loop through rows
rowCount = startRange.Rows.Count
For i = 1 To rowCount
startTime = startRange.Cells(i, 1).Value
endTime = endRange.Cells(i, 1).Value
If IsNumeric(startTime) And IsNumeric(endTime) Then
elapsedTime = CDbl(endTime) - CDbl(startTime)
' Handle next-day (cross-midnight) case
If elapsedTime < 0 Then elapsedTime = elapsedTime + 1
outputCell.Offset(i - 1, 0).Value = elapsedTime
outputCell.Offset(i - 1, 0).NumberFormat = "[h]:mm:ss"
Else
outputCell.Offset(i - 1, 0).Value = "Invalid Time"
End If
Next i
MsgBox "Elapsed times calculated successfully for " & rowCount & " rows.", vbInformation, xTitleId
End Sub 2. Clique no botão
para executar o código. Ser-lhe-á pedido que selecione o intervalo de tempo de início, o intervalo de tempo de fim e onde pretende que o tempo decorrido seja apresentado. O resultado será exibido num formato de hora.
Esta abordagem com VBA é especialmente eficaz quando pretende personalizar ainda mais o cálculo ou a formatação e poupar tempo ao trabalhar com folhas de cálculo muito extensas.
As Melhores Ferramentas de Produtividade para o Office
Potencie as suas competências no Excel com Kutools para Excel e experimente uma eficiência como nunca antes.Kutools para Excel Oferece mais de 300 funcionalidades avançadas para impulsionar a produtividade e Economizar Tempo.Clique aqui para obter a funcionalidade de que mais precisa...
Office Tab Traz uma interface com separadores para o Office e torna o seu trabalho muito mais fácil
- Ative a edição e leitura com separadores no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novos separadores da mesma janela, em vez de em janelas separadas.
- Aumente a sua produtividade em 50 % e elimine centenas de cliques do rato todos os dias!
Todos os suplementos Kutools — num único instalador.
Kutools for Office reúne suplementos para Excel, Word, Outlook e PowerPoint, além do Office Tab Pro, sendo a solução ideal para equipas que trabalham em várias aplicações do Office.
- Pacote tudo-em-um— suplementos para Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Um instalador, uma licença— configuração em minutos (pronto para MSI)
- Funciona melhor em conjunto— produtividade simplificada em todas as aplicações do Office
- Teste gratuito de 30 dias com todas as funcionalidades— sem registo, sem cartão de crédito
- Melhor relação qualidade-preço— poupe face à compra individual dos suplementos