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.

Faça diferença entre datas com a função DATADIF

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")
  1. data_inicial: a data mais antiga (início do projeto, contratação, nascimento);
  2. data_final: a data mais recente (fim do projeto, desligamento, hoje);
  3. 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

UnidadeRetorna
"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.

Continue aprendendo