Menu

DATADIF no Excel (DATEDIF): anos, meses e dias entre datas

=DATADIF(A2;B2;"M") conta os meses completos entre a data inicial em A2 e a data final em B2. As unidades Y, M, D, YM, MD e YD, por que a DATADIF não aparece na lista de funções e o erro #NÚM!.

Todas as planilhas desta página são ao vivo: mude um número ou uma fórmula e elas recalculam.

=DATADIF(A2;B2;"M") conta os meses completos entre a data inicial em A2 e a data final em B2. O terceiro argumento, a unidade, decide o que é contado: "Y" anos, "M" meses, "D" dias, mais três unidades que ignoram parte das datas. A DATADIF se chama DATEDIF em inglês; a tabela mostra as fórmulas em inglês, com vírgulas, e também aceita a forma em português, com ponto e vírgula.

Todas as unidades da DATADIF em um par de datas
E3
ABCDE
1StartEndUnitResult
22024-04-152026-09-10Y2
3M28
4D878
5YM4
6MD26
7YD148
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =DATADIF($A$2;$B$2;D3)

De 2024-04-15 a 2026-09-10 há 2 anos completos, 28 meses completos e 878 dias. Mude a data final em B2 e veja cada unidade mudar. A unidade pode ser digitada na fórmula ("M") ou, como aqui, lida de uma célula.

Sintaxe e unidades da DATADIF

=DATEDIF(start_date, end_date, unit)
UnidadeConta2024-04-15 a 2026-09-10
"Y"anos completos2
"M"meses completos28
"D"dias878
"YM"meses depois do último ano completo4
"MD"dias depois do último mês completo26
"YD"dias depois do último ano completo148

"Completo" significa que a DATADIF nunca arredonda para cima. De 31 de janeiro a 28 de fevereiro são 0 meses, porque 28 de fevereiro vem antes da marca de um mês. A unidade não diferencia maiúsculas ("m" também funciona), mas precisa estar entre aspas ou em uma célula.

Por que a DATADIF não está na lista de funções

A DATADIF veio do Lotus 1-2-3 para o Excel, e a Microsoft só a mantém por compatibilidade. Ela não está na caixa Inserir Função, o preenchimento automático de fórmulas não a sugere e nenhuma dica mostra os argumentos dela. Mesmo assim ela calcula em todas as versões do Excel no Windows e no Mac, e no Google Planilhas. Digite o nome inteiro e o parêntese de abertura, =DATADIF(, e acrescente os argumentos você mesmo.

Meses entre duas datas

Meses completos são o que a maioria dos contratos, assinaturas e relatórios de tempo de casa precisa. Para um número decimal, FRAÇÃOANO(A2;B2)*12 (YEARFRAC em inglês) retorna os meses mantendo a fração (a base padrão dela conta todo mês como 30 dias).

Meses de cada assinatura
C2
ABCD
1StartEndFull monthsDecimal months
22025-03-102026-01-0599.8
32024-04-152026-09-102828.8
42026-01-312026-02-2800.9
52025-11-012026-05-0166.0
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =DATADIF(A2;B2;"M")

A primeira assinatura durou 9 meses completos: 5 de janeiro vem antes do dia 10, então o décimo mês não conta. A terceira linha mostra o caso de 31 de janeiro, 0 meses.

Anos, meses e dias juntos

"Y", "YM" e "MD" foram feitos para serem usados juntos. Cada um continua de onde o anterior parou, então os três respondem "quanto tempo, exatamente": 2 anos, 4 meses e 26 dias para as datas acima. Calcular idade usa as mesmas três unidades com datas de nascimento.

Tempo de serviço
E2
ABCDEF
1HiredYearsMonthsDaysServiceAs of
22019-06-0373277y 3m 27d2026-09-30
32023-11-20210102y 10m 10d
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =B2&"y "&C2&"m "&D2&"d"

O primeiro funcionário tem 7 anos, 3 meses e 27 dias de casa em 2026-09-30.

Por que a DATADIF retorna #NÚM!

A DATADIF se recusa a contar para trás. Quando a data inicial é posterior à data final, o resultado é #NÚM! (#NUM! em inglês; a tabela mostra os nomes de erro em inglês). Se a ordem pode variar, passe à DATADIF a data menor com a MÍNIMO e a maior com a MÁXIMO.

Data inicial depois da data final
C2
ABCD
1StartEndDATEDIFWith MIN and MAX
22026-03-102026-01-05#NUM!64
#NUM! Um número está fora do intervalo aceito por esta função.No Excel em português: =DATADIF(A2;B2;"D")

C2 mostra #NUM!; D2 retorna 64. Só para dias, =ABS(B2-A2) dá os mesmos 64 sem a DATADIF. A DATADIF também retorna #NÚM! para uma unidade desconhecida, como "W", e #VALOR! (#VALUE!) quando uma data é um texto que o Excel não consegue ler como data.

A unidade MD pode errar

A própria documentação da Microsoft desaconselha o "MD": quando o dia inicial não existe no mês anterior à data final, ele pode retornar um número negativo.

MD a partir de 31 de janeiro
C2
ABCD
1StartEndMDD
22026-01-312026-03-01-229
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =DATADIF(A2;B2;"MD")

De 31 de janeiro a 1º de março o resultado de "MD" é -2: a DATADIF conta a partir de "31 de fevereiro", que passa para 3 de março, dois dias depois da data final. A contagem de dias, 29, está certa. Quando as datas iniciais podem cair entre os dias 29 e 31, mostre a duração em dias, ou confira o número do MD à mão.

Prática: contar os meses

Sua vez
C2
ABC
1StartEndMonths
22025-03-102026-01-05
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.

Sua vez: Em C2, conte os meses completos entre a data inicial em A2 e a data final em B2.

Sua vez: em qualquer ordem
C2
ABC
1Date 1Date 2Days
22026-04-182026-02-01
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.

Sua vez: Em C2, conte os dias entre as duas datas, seja qual for a que vem primeiro.

Perguntas frequentes

O que a DATADIF faz no Excel?

Ela conta os anos, meses ou dias completos entre duas datas: =DATADIF(A2;B2;"Y") para anos, "M" para meses, "D" para dias. A data inicial precisa vir primeiro.

Por que não encontro a DATADIF no Excel?

A DATADIF existe por compatibilidade com o Lotus 1-2-3, então o Excel a deixa de fora da caixa Inserir Função e do preenchimento automático de fórmulas. Ela continua funcionando em todas as versões: digite =DATADIF( por inteiro e acrescente os argumentos você mesmo.

Por que a DATADIF retorna #NÚM!?

A data inicial é posterior à data final. Inverta os argumentos, ou use =DATADIF(MÍNIMO(A2;B2);MÁXIMO(A2;B2);"D") quando você não sabe qual data vem primeiro.

Qual a diferença entre YM, MD e YD na DATADIF?

Eles ignoram parte das datas: "YM" dá os meses que sobram depois dos anos completos, "MD" os dias que sobram depois dos meses completos, e "YD" os dias que sobram depois dos anos completos. Juntos, "Y", "YM" e "MD" dão uma idade em anos, meses e dias.

A DATADIF funciona no Google Planilhas?

Sim, com os mesmos argumentos e unidades. O Google Planilhas também a lista na ajuda de funções, ao contrário do Excel.

Ilustração das linguagens de programação do Coddy

Aprenda a programar com o Coddy

COMEÇAR