DATADIF no Excel: como calcular anos, meses e dias entre datas
Atualizado em
O DATADIF conta os anos, meses ou dias completos entre duas datas. Por exemplo, =DATADIF(B2;C2;"Y") retorna 9 para quem foi admitido em 14 de setembro de 2015 e saiu em 31 de março de 2025. A data inicial vem primeiro, e a unidade vai entre aspas.
Sintaxe do DATADIF
=DATADIF(data_inicial; data_final; unidade)
- data_inicial
- A data mais antiga: uma célula como
B2, ouDATA(2015;9;14). Ela não pode ser posterior à data_final. - data_final
- A data mais recente, por exemplo um prazo ou uma data-base fixa numa célula travada como
$F$1. - unidade
- O que contar, entre aspas:
"Y"anos completos,"M"meses completos,"D"dias,"YM"meses que sobram depois dos anos,"MD"dias que sobram depois dos meses,"YD"dias que sobram depois dos anos. As letras continuam em inglês no Excel em português.
Pratique DATADIF aqui
Digite sua fórmula direto na planilha. Ela é conferida como no Excel, com ponto e vírgula ou vírgula, em português ou em inglês.
Calcular os anos completos de casa
A Ana foi admitida na data em B2 e saiu na data em C2. Em D2, calcule os anos completos de casa dela com DATADIF.
| Funcionário | Admissão | Desligamento | Anos completos |
| Ana Souza | 14/09/2015 | 31/03/2025 |
Como usar o DATADIF, passo a passo
- Clique na célula do resultado e digite
=DATADIF(por inteiro: o Excel não sugere essa função na lista e não mostra dica dos argumentos. - Selecione a data inicial, digite ponto e vírgula e selecione a data final.
- Digite ponto e vírgula e a unidade entre aspas: "Y" para anos, "M" para meses, "D" para dias.
- Feche o parêntese e pressione Enter. O DATADIF conta só unidades completas e nunca arredonda para cima.
Exemplos de DATADIF
Anos completos de casa
=DATADIF(B2;C2;"Y")
De 14 de setembro de 2015 a 31 de março de 2025: 9 anos completos.
Meses completos de um contrato
=DATADIF(B2;C2;"M")
De 1º de fevereiro de 2023 a 31 de janeiro de 2025: 23 meses completos.
Dias até um prazo
=DATADIF(B2;C2;"D")
De 3 de fevereiro a 18 de junho de 2025: 135 dias.
Idade em anos e meses
=DATADIF(B2;C2;"Y")&" anos "&DATADIF(B2;C2;"YM")&" meses"
Nascida em 22 de julho de 1990, em 15 de março de 2025: 34 anos 7 meses.
Erros comuns do DATADIF e como resolver
| Erro | Causa | Solução |
|---|---|---|
| #NÚM! | A data inicial é posterior à data final, por exemplo quando as duas células estão invertidas. | Coloque a data mais antiga primeiro: =DATADIF(B2;C2;"Y"), com B2 antes de C2. |
| #NÚM! (unidade) | A unidade não existe no DATADIF, por exemplo "A" para anos, "YY" ou "W" para semanas. | Use "Y", "M", "D", "YM", "MD" ou "YD". Para semanas, divida os dias por 7: =DATADIF(B2;C2;"D")/7. |
| #VALOR! | Uma das datas é um texto que o Excel não reconhece como data, por exemplo uma data colada de outro sistema. | Converta a célula em data de verdade (ela fica alinhada à direita) ou monte a data com DATA(ano;mês;dia). |
| #NOME? | A unidade está sem aspas (Y em vez de "Y") ou o nome da função está escrito errado. | Coloque a unidade entre aspas retas e digite o nome completo: DATADIF. |
DATADIF, subtração de datas ou FRAÇÃOANO
Subtrair duas datas (=C2-B2) dá os dias entre elas, como o DATADIF com "D", mas a célula do resultado pode ficar com formato de data e mostrar uma data em vez de um número. Dividir esses dias por 365 gera casas decimais que se deslocam com os anos bissextos. O FRAÇÃOANO retorna a fração de ano entre duas datas (cerca de 9,5 anos, por exemplo), útil para juros ou cálculos proporcionais. O DATADIF retorna unidades inteiras e completas, que é o que você precisa para uma idade, os anos de casa ou os meses de um contrato. A Microsoft mantém o DATADIF por compatibilidade e avisa que "MD" pode dar resultados errados perto do fim do mês.
Perguntas frequentes
Por que não encontro o DATADIF no Excel?
O DATADIF não aparece nas sugestões de funções nem na caixa Inserir Função, mas funciona nas versões atuais do Excel. Digite =DATADIF( por inteiro e o Excel aceita a fórmula.
Como calcular a idade no Excel?
Use =DATADIF(B2;C2;"Y"), com a data de nascimento em B2 e a data de cálculo em C2. Junte DATADIF(B2;C2;"YM") para os meses que sobram.
Posso usar HOJE() como data final?
Pode: =DATADIF(B2;HOJE();"Y") dá uma idade que se atualiza todo dia. Para um relatório que não pode mudar, coloque uma data fixa numa célula e trave-a com $F$1.
Por que o DATADIF retorna #NÚM!?
Quase sempre porque a data inicial é posterior à data final. O DATADIF não retorna resultados negativos: inverta as duas datas ou confira se as duas células têm datas de verdade.
Continue praticando
Os 5 exercícios de DATADIF, com explicações e acompanhamento do seu progresso.
Abrir os exercícios de DATADIF