Faça diferença entre datas com a função DATADIF
Excel · 5 min de leitura
Em resumo
A função =DATADIF(data_inicial; data_final; "unidade") calcula a diferença entre duas datas em dias ("d"), meses ("m") ou anos ("y"), contando só períodos completos e sempre com a data mais antiga primeiro. Com HOJE() como data final, calcula idade e tempo de casa que se atualizam sozinhos.

Quanto tempo durou o projeto? Há quantos meses o funcionário está na empresa? Quantos anos o cliente tem? Todas essas perguntas são uma diferença entre datas, e o Excel tem uma função feita só para isso: a DATADIF. Ela é meio escondida (não aparece na lista de sugestões), mas resolve em uma fórmula o que daria trabalho com contas manuais.
Neste guia você vai aprender a sintaxe da DATADIF, calcular diferenças em dias, meses e anos, e usá-la com a função HOJE para calcular idade.
Caso prefira aprender por vídeo, veja o vídeo abaixo:

O que você vai aprender
- Por que a DATADIF não aparece nas sugestões;
- A ordem dos argumentos (e o erro mais comum);
- As unidades "d", "m" e "y" e as combinadas;
- Como a função considera só períodos completos;
- Como calcular idade com DATADIF e HOJE.
A planilha da aula está disponível para download logo abaixo do vídeo.
Uma função "escondida"
Ao digitar =SOMA(, o Excel mostra uma dica com os argumentos. Com a DATADIF, não: ela não aparece na lista de sugestões, o Tab não completa o nome e nenhuma dica mostra os argumentos. A função existe por compatibilidade com planilhas antigas, mas a Microsoft não a documenta no assistente.
Na prática, é só digitar o nome inteiro e abrir o parêntese "na marra". Se você apertar Tab e nada acontecer, pressione F2 (ou Fn + F2 no notebook) para voltar à edição e continue digitando.
A sintaxe
=DATADIF(data_inicial; data_final; "unidade")
- data_inicial: a data mais antiga (início do projeto, contratação, nascimento);
- data_final: a data mais recente (fim do projeto, desligamento, hoje);
- unidade: como você quer ver a diferença, sempre entre aspas.
A ordem importa: se a data inicial for maior que a final, a função retorna o erro #NÚM!.
As unidades
| Unidade | Retorna |
|---|---|
"d" | Dias entre as datas (day) |
"m" | Meses completos (month) |
"y" | Anos completos (year) |
"ym" | Meses que sobram depois dos anos completos |
"md" | Dias que sobram depois dos meses completos |
"yd" | Dias que sobram depois dos anos completos |
Exemplo: duração de projetos
A base tem a data de início de cada projeto na coluna A e a data de término na coluna B.
Em dias
=DATADIF(A2;B2;"d")
No vídeo, o primeiro projeto durou 179 dias. Dê duplo clique na alça de preenchimento (o quadradinho no canto da célula) para replicar para todas as linhas.
Em meses
=DATADIF(A2;B2;"m")
Resultado: 5 meses.
Em anos
=DATADIF(A2;B2;"y")
Resultado: 0. Não é erro: o projeto durou menos de um ano completo.
Só períodos completos contam
A DATADIF conta apenas períodos completos, sem arredondar para cima. Cinco meses e meio dão 5 meses; onze meses dão 0 ano. No vídeo, ao alterar a data de término para mais de um ano depois do início, todas as colunas mudaram juntas, e a de anos passou a mostrar 1, porque o projeto completou um ano, mas não dois.
Para mostrar "1 ano e 3 meses", combine as unidades:
=DATADIF(A2;B2;"y") & " ano(s) e " & DATADIF(A2;B2;"ym") & " mês(es)"
Calculando idade com DATADIF e HOJE
A função HOJE não tem argumentos e retorna a data atual:
=HOJE()
Ela se atualiza sozinha: abrindo o arquivo amanhã, mostra a data de amanhã. Combinando com a DATADIF, a diferença entre a data de nascimento e hoje, em anos completos, é a idade:
=DATADIF(A2;HOJE();"y")
Repare que HOJE() entra sem aspas, porque é uma função, enquanto "y" vai entre aspas, porque é texto. Replique para baixo e cada pessoa ganha sua idade, que se atualiza no aniversário automaticamente.
Para a idade completa, em anos, meses e dias:
=DATADIF(A2;HOJE();"y") & " anos, " & DATADIF(A2;HOJE();"ym") & " meses e " & DATADIF(A2;HOJE();"md") & " dias"
Outros usos no dia a dia
- RH: tempo de casa entre admissão e hoje (ou desligamento);
- Contratos: meses de vigência entre assinatura e fim;
- Financeiro: dias de atraso entre vencimento e pagamento;
- Clientes: meses desde a última compra.
Para dias úteis (sem fins de semana e feriados), use DIATRABALHOTOTAL no lugar da DATADIF. E se quiser entender por que dá para fazer contas com datas, veja o guia como transformar números em datas no Excel.
Perguntas frequentes
Por que a DATADIF não aparece no Excel?
Ela funciona, mas não é listada nas sugestões. Digite o nome completo e abra o parêntese manualmente.
Por que a DATADIF deu #NÚM!?
A data inicial é maior que a final. Inverta a ordem dos argumentos.
Como calcular idade no Excel?
Use =DATADIF(data_de_nascimento;HOJE();"y").
Por que deu 0 anos se passaram 11 meses?
A DATADIF só conta períodos completos. Use "m" para ver em meses.
Conclusão
A DATADIF calcula diferenças entre datas em dias ("d"), meses ("m") ou anos ("y"), sempre com a data mais antiga primeiro. Com HOJE(), vira uma calculadora de idade e tempo de casa que se atualiza sozinha. Baixe a planilha da aula e pratique com os projetos e as datas de nascimento.
Bons estudos e até o próximo conteúdo! 🚀
Quer dominar o Excel do básico ao avançado? Conheça o curso de Excel online da Atuar: 278 aulas, certificado e monitoria 24h com IA.


