O que a função DATADIF faz?
A função DATADIF calcula a diferença entre duas datas e devolve o resultado em anos completos ("Y"), meses completos ("M") ou dias ("D"). É a base de contas de idade e tempo de contrato. O Excel a mantém por compatibilidade com pastas antigas e avisa que ela pode errar em alguns casos.
| Nome em português | DATADIF |
|---|---|
| Nome em inglês | DATEDIF |
| Categoria | Data e hora |
| Retorna | Número inteiro (anos, meses ou dias, conforme a unidade) |
| Existe desde | Excel 2007 ou anterior · existe no Excel 2013 |
Qual é a sintaxe da função DATADIF?
No Excel em português do Brasil os argumentos se separam com ponto e vírgula; em inglês, com vírgula. Argumentos entre colchetes são opcionais.
| Argumento | Obrigatório | O que aceita |
|---|---|---|
| data_inicial | Sim | A data de início do período. Pode ser uma célula com data, o resultado de outra função ou um número de série. |
| data_final | Sim | A data de fim do período. Precisa ser igual ou posterior à data inicial, senão o resultado é #NÚM!. |
| unidade | Sim | Texto entre aspas que define o resultado: "Y" anos completos, "M" meses completos, "D" dias, "YM" meses que sobram depois dos anos completos. Existem também "MD" e "YD", mas a Microsoft não recomenda "MD". |
Como usar a função DATADIF na prática?
Exemplo 1: Anos, meses e dias entre duas datas
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Contrato | Início | Fim | Anos | Meses | Dias |
| 2 | Aluguel | 15/03/2022 | 21/10/2026 | 4 | 55 | 1.681 |
| 3 | Seguro | 31/01/2025 | 28/02/2026 | 1 | 12 | 393 |
=DATADIF(B2;C2;"Y") Em inglês: =DATEDIF(B2,C2,"Y") =DATADIF(B2;C2;"M") Em inglês: =DATEDIF(B2,C2,"M") =DATADIF(B2;C2;"D") Em inglês: =DATEDIF(B2,C2,"D") =DATADIF(B3;C3;"Y") Em inglês: =DATEDIF(B3,C3,"Y") =DATADIF(B3;C3;"M") Em inglês: =DATEDIF(B3,C3,"M") =DATADIF(B3;C3;"D") Em inglês: =DATEDIF(B3,C3,"D") Do aluguel, de 15/03/2022 a 21/10/2026, passaram 4 anos completos, 55 meses completos (4 anos e 7 meses) e 1.681 dias. No seguro, de 31/01/2025 a 28/02/2026, há 1 ano completo e 12 meses completos, porque fevereiro não tem dia 31 e o 13º mês ainda não fechou. Os dias somam 393.
Exemplo 2: Tempo de casa em anos e meses
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Pessoa | Admissão | Referência | Tempo de casa |
| 2 | Marta | 18/02/2019 | 21/10/2026 | 7 ano(s) e 8 mês(es) |
| 3 | Paulo | 05/09/2024 | 21/10/2026 | 2 ano(s) e 1 mês(es) |
| 4 | Alice | 01/12/2025 | 21/10/2026 | 0 ano(s) e 10 mês(es) |
=DATADIF(B2;C2;"Y")&" ano(s) e "&DATADIF(B2;C2;"YM")&" mês(es)" Em inglês: =DATEDIF(B2,C2,"Y")&" ano(s) e "&DATEDIF(B2,C2,"YM")&" mês(es)" =DATADIF(B3;C3;"Y")&" ano(s) e "&DATADIF(B3;C3;"YM")&" mês(es)" Em inglês: =DATEDIF(B3,C3,"Y")&" ano(s) e "&DATEDIF(B3,C3,"YM")&" mês(es)" =DATADIF(B4;C4;"Y")&" ano(s) e "&DATADIF(B4;C4;"YM")&" mês(es)" Em inglês: =DATEDIF(B4,C4,"Y")&" ano(s) e "&DATEDIF(B4,C4,"YM")&" mês(es)" A unidade "Y" dá os anos completos e a unidade "YM" dá os meses que sobram depois deles. Marta tem 92 meses completos, ou seja, 7 anos e 8 meses. Paulo tem 25 meses, que são 2 anos e 1 mês. Alice tem 10 meses, então o resultado é 0 ano e 10 meses. O operador & junta os pedaços em um texto.
Exemplo 3: O mês só conta quando o dia chega
| A | B | C | |
|---|---|---|---|
| 1 | Início | Fim | Meses completos |
| 2 | 31/01/2026 | 28/02/2026 | 0 |
| 3 | 31/01/2026 | 31/03/2026 | 2 |
| 4 | 15/01/2026 | 14/02/2026 | 0 |
| 5 | 15/01/2026 | 15/02/2026 | 1 |
=DATADIF(A2;B2;"M") Em inglês: =DATEDIF(A2,B2,"M") =DATADIF(A3;B3;"M") Em inglês: =DATEDIF(A3,B3,"M") =DATADIF(A4;B4;"M") Em inglês: =DATEDIF(A4,B4,"M") =DATADIF(A5;B5;"M") Em inglês: =DATEDIF(A5,B5,"M") Um mês só conta como completo quando a data final alcança o mesmo dia do mês da data inicial. De 31/01 a 28/02 o dia 28 não chega ao 31, então são 0 meses. De 31/01 a 31/03 são 2. De 15/01 a 14/02 faltou 1 dia (0 meses) e de 15/01 a 15/02 o dia bateu (1 mês).
Quais erros a função DATADIF costuma dar?
#NÚM!
Por que acontece: A data inicial é posterior à data final. O mesmo erro aparece quando a unidade informada não é uma das aceitas.
Como corrigir: Confira a ordem das datas (início primeiro, fim depois) e use uma unidade válida: "Y", "M", "D", "YM", "MD" ou "YD".
=DATADIF(A2;B2;"D")Resultado: #NÚM!#VALOR!
Por que acontece: Uma das datas é um texto que o Excel não reconhece como data.
Como corrigir: Use datas de verdade: células com data válida, a função DATA ou DATA.VALOR para converter o texto.
=DATADIF(A2;B2;"D")Resultado: #VALOR!Resultado impreciso com a unidade "MD"
Por que acontece: A Microsoft avisa que a unidade "MD" pode devolver número negativo, zero ou resultado impreciso, e não recomenda usá-la.
Como corrigir: Para os dias que sobram depois do último mês completo, a Microsoft sugere subtrair da data final o primeiro dia do mês da data final, obtido com DATA(ANO(data_final); MÊS(data_final); 1).
DATADIF no Google Planilhas e no LibreOffice Calc
| Programa | Nome da função | Observação |
|---|---|---|
| Excel | DATADIF (DATEDIF) | Referência deste dicionário. |
| Google Planilhas | DATADIF (DATEDIF) | Existe com a mesma sintaxe e as unidades "Y", "M", "D", "MD", "YM" e "YD". A página do Google explica que meses e anos só são contados quando o dia da data final chega ao dia da data inicial. Documentação do Google |
| LibreOffice Calc | DATADIF (DATEDIF) | No Calc em português a função também chama DATADIF e está disponível desde o LibreOffice 3.6. A ajuda diz que as unidades ("d", "m", "y", "ym", "md", "yd") valem independentemente do idioma e que a data final deve ser posterior à inicial. Disponível desde o LibreOffice 3.6. Ajuda do LibreOffice |
A função DATADIF existe no Excel 2013?
Existe no Excel 2013 Excel 2007 ou anterior
A lista oficial de funções do Excel traz DATADIF sem marcador de versão, o que indica que ela existe desde antes do Excel 2010 e, portanto, também no Excel 2013. A Microsoft diz que a função existe para dar suporte a pastas de trabalho do Lotus 1-2-3.
Veja todas as funções por versão em funções do Excel por versão.
O que mais vale saber sobre a DATADIF?
- Para a quantidade de dias entre duas datas, não precisa de DATADIF: basta subtrair a data anterior da posterior.
- A Microsoft explica que o Excel mantém DATADIF para dar suporte a pastas de trabalho antigas do Lotus 1-2-3 e que ela pode calcular resultados incorretos em certos casos.
- Digite o nome da função e os argumentos à mão: DATADIF pode não aparecer entre as sugestões do Excel ao digitar, mas funciona normalmente.
- Para a idade em anos completos, use DATADIF(nascimento; HOJE(); "Y"). Para anos e meses, combine as unidades "Y" e "YM".
Perguntas frequentes sobre a DATADIF
A função DATADIF existe no Excel?
Sim. A Microsoft documenta a função e diz que a mantém para dar suporte a pastas de trabalho antigas do Lotus 1-2-3. Ela pode não aparecer entre as sugestões ao digitar, mas funciona quando a fórmula é escrita por inteiro.
Como calcular a idade exata no Excel?
Use =DATADIF(A2;HOJE();"Y"), com a data de nascimento em A2. A unidade "Y" devolve os anos completos. Para anos e meses, junte "Y" e "YM" em um texto com o operador &.
Por que a Microsoft não recomenda a unidade "MD"?
Porque ela pode devolver um número negativo, zero ou um resultado impreciso. Para os dias depois do último mês completo, a página da Microsoft sugere subtrair da data final o primeiro dia do mês dela.
Funções relacionadas
Ver todas as funções de data e hora
Fontes consultadas
- Microsoft: função DATADIF
- Microsoft: função DATEDIF (inglês)
- Microsoft: funções do Excel por categoria (marcadores de versão)
- Google: DATADIF (DATEDIF)
- LibreOffice: função DATADIF
Consultado em 21/10/2026. Os resultados dos exemplos acima foram calculados por programa, a partir dos dados mostrados em cada tabela. Encontrou algo errado? Escreva para contato@office2013.com.br.