Para calcular dias entre duas datas no Excel, digite a data inicial em A2, a data final em B2 e use =B2-A2. O resultado é o número de dias decorridos, sem contar a data inicial: de 10/03/2026 a 12/03/2026, o Excel devolve 2. A função =DIAS(B2;A2) dá o mesmo resultado, e =DATADIF(A2;B2;"D") também, com a diferença de que DATADIF ainda calcula meses e anos completos.
Este guia cobre só a diferença entre datas em dias corridos, meses e anos. Se você precisa contar apenas dias úteis, veja como calcular dias úteis no Excel. Se a ideia é chegar a uma nova data (por exemplo, hoje + 30 dias), o assunto é outro: somar ou subtrair dias de uma data no Excel.
As três formas de calcular dias entre datas no Excel
| Método | Fórmula (Excel em pt-BR) | Quando usar |
|---|---|---|
| Subtração | =B2-A2 |
Dias corridos, forma mais rápida |
| DIAS | =DIAS(B2;A2) |
Mesmo resultado, com nome explícito |
| DATADIF | =DATADIF(A2;B2;"D") |
Quando também precisa de meses ou anos |
As três fórmulas partem da mesma ideia: o Excel guarda cada data como um número, então a diferença entre duas datas é uma conta de menos. O que muda é a ordem dos argumentos, o comportamento com datas invertidas e o que cada uma consegue devolver além de dias.
Separador e nomes das funções
No Excel em português do Brasil, os argumentos são separados por ponto e vírgula (;), porque a vírgula é usada como separador decimal. No Excel configurado em inglês, a vírgula separa os argumentos e as funções têm nomes em inglês:
| Excel em pt-BR | Excel em inglês |
|---|---|
=DIAS(B2;A2) |
=DAYS(B2,A2) |
=DATADIF(A2;B2;"D") |
=DATEDIF(A2,B2,"D") |
=HOJE() |
=TODAY() |
=DATA.VALOR(A2) |
=DATEVALUE(A2) |
=DATA(2026;12;25) |
=DATE(2026,12,25) |
Se você copiar uma fórmula de um tutorial em inglês e colar no Excel em português, troque os nomes e os separadores. Caso contrário, o Excel mostra erro de nome ou recusa a fórmula.
Por que a subtração funciona: o número de série das datas
No sistema de datas 1900, que é o padrão do Excel para Windows e das versões atuais do Excel para Mac, o dia 01/01/1900 é o número 1 e cada dia seguinte soma 1. A data 21/09/2026 é guardada como 46286. A data 10/03/2026 é 46091, e 12/03/2026 é 46093.
Quando você digita =B2-A2, o Excel calcula 46093 menos 46091 e mostra 2. Não há mágica: é uma subtração entre dois números inteiros. Por isso a fórmula conta automaticamente meses de 28, 29, 30 ou 31 dias e anos bissextos, sem nenhum ajuste manual.
O caso do ano de 1900
A Microsoft documenta que o Excel trata 1900 como ano bissexto, embora ele não tenha sido. O comportamento foi herdado do Lotus 1-2-3 por compatibilidade. Na prática, isso só afeta datas anteriores a 01/03/1900, como a função DIA.DA.SEMANA retornar valores incorretos nesse período. Para qualquer cálculo com datas atuais, a diferença de dias sai correta, e o Excel trata normalmente os outros anos de século, como 2100, que não é bissexto.
Existe ainda o sistema de datas 1904, usado como padrão em versões antigas do Excel para Mac. A diferença entre os dois sistemas é de 1.462 dias no número de série. Se duas pastas de trabalho usarem sistemas diferentes e você copiar datas de uma para a outra, as datas podem mudar. Dentro de uma mesma pasta, a subtração continua certa.
Subtração direta: =B2-A2
É a forma mais usada e a mais fácil de auditar. Monte a planilha assim:
| A | B | C | |
|---|---|---|---|
| 1 | Data inicial | Data final | Dias |
| 2 | 15/12/2025 | 10/01/2026 | =B2-A2 |
O resultado em C2 é 26. A contagem atravessa a virada de ano sem nenhum ajuste: são 16 dias até 31/12/2025 e mais 10 dias em janeiro.
Por que o resultado não conta a data inicial
A subtração mede quantos dias se passaram entre as duas datas. De 10/03 para 12/03 passam dois dias: 10 para 11 e 11 para 12. Por isso o Excel exclui a data inicial e inclui a data final. Essa é a mesma lógica de “dias decorridos” usada pela calculadora de dias no modo padrão.
Se você precisa contar as duas datas, como em “quantos dias de evento” ou “quantas diárias de trabalho de 10 a 12”, some 1:
=B2-A2+1
De 10/03/2026 a 12/03/2026, essa fórmula devolve 3. Para a mesma data inicial e final, =B2-A2 devolve 0 e =B2-A2+1 devolve 1. Qual das duas usar depende da regra do seu caso: contrato, escala, reserva ou regulamento. O artigo sobre contagem inclusiva e exclusiva explica quando cada convenção costuma aparecer.
Quando a data final é anterior à inicial
Se as datas estiverem invertidas, a subtração devolve um número negativo. Com 12/03/2026 em A2 e 10/03/2026 em B2, =B2-A2 resulta em -2. Isso pode ser útil: um número negativo indica que a data final já passou em relação à inicial.
Se você só quer a distância, sem sinal, use ABS:
=ABS(B2-A2)
Cuidado com a formatação: se a célula do resultado estiver com formato de data, um número negativo aparece como ####, porque o Excel não exibe datas negativas.
Função DIAS: =DIAS(data_final; data_inicial)
A função DIAS devolve o número de dias entre duas datas. A sintaxe oficial é:
=DIAS(data_final; data_inicial)
Repare na ordem: a data final vem primeiro. É o contrário do que muita gente espera, e é a causa mais comum de resultados negativos com essa função. Segundo a Microsoft, quando os dois argumentos são números, DIAS calcula data_final - data_inicial. Por isso ela devolve o mesmo valor que a subtração, inclusive o sinal negativo quando as datas estão invertidas.
Exemplo da própria documentação da Microsoft, conferido: de 01/02/2021 a 15/03/2021 são 42 dias.
=DIAS(DATA(2021;3;15);DATA(2021;2;1))
Vantagens e limites da função DIAS
- Deixa a intenção explícita na fórmula, o que ajuda quem vai revisar a planilha depois.
- Aceita datas digitadas como texto dentro da fórmula, desde que o Excel consiga interpretá-las como data. Se o texto não puder ser lido como data, o resultado é
#VALOR!. - Retorna
#NÚM!quando algum argumento está fora do intervalo de datas válido do Excel. - Não calcula meses nem anos. Para isso, use DATADIF.
Para somar a data inicial na contagem, a lógica é a mesma da subtração: =DIAS(B2;A2)+1.
Função DATADIF: dias, meses e anos completos
DATADIF calcula a diferença entre duas datas na unidade que você escolher. A sintaxe é:
=DATADIF(data_inicial; data_final; "unidade")
Aqui a ordem é a intuitiva: primeiro a data inicial, depois a final. A Microsoft informa que a função existe para dar suporte a pastas de trabalho antigas do Lotus 1-2-3. Ela funciona normalmente, mas pode não aparecer nas sugestões enquanto você digita, então escreva o nome completo.
As unidades são letras em inglês, mesmo no Excel em português:
| Unidade | O que retorna |
|---|---|
"D" |
Número de dias do período |
"M" |
Número de meses completos |
"Y" |
Número de anos completos |
"YM" |
Meses restantes, ignorando anos e dias |
"YD" |
Dias restantes, ignorando os anos |
"MD" |
Dias restantes, ignorando meses e anos (tem problemas conhecidos) |
Exemplo com meses e anos
Com 15/01/2025 em A2 e 10/09/2026 em B2:
| Fórmula | Resultado | Leitura |
|---|---|---|
=DATADIF(A2;B2;"D") |
603 | Dias decorridos |
=DATADIF(A2;B2;"M") |
19 | Meses completos |
=DATADIF(A2;B2;"Y") |
1 | Ano completo |
=DATADIF(A2;B2;"YM") |
7 | Meses além do ano completo |
Leitura do resultado: 1 ano, 7 meses e 26 dias. O 19º mês completo termina em 15/08/2026; de 15/08/2026 a 10/09/2026 sobram 26 dias. O vigésimo mês só se completaria em 15/09/2026, depois da data final.
Um exemplo da documentação oficial também confere: de 01/06/2001 a 15/08/2002, "D" devolve 440 dias e "YD" devolve 75, que são os dias de 01/06 a 15/08 sem considerar os anos.
O aviso sobre "MD"
A Microsoft avisa, na página da função, que o argumento "MD" pode resultar em um número negativo, zero ou em um resultado impreciso, e recomenda evitá-lo. Para obter os dias que sobram depois dos meses completos, uma alternativa mais previsível é calcular a data em que o último mês completo termina e subtraí-la da data final:
=B2-DATAM(A2;DATADIF(A2;B2;"M"))
No exemplo acima, DATAM(A2;19) devolve 15/08/2026, e 10/09/2026 menos 15/08/2026 dá 26. Se quiser montar a frase completa:
=DATADIF(A2;B2;"Y")&" ano(s), "&DATADIF(A2;B2;"YM")&" mês(es) e "&B2-DATAM(A2;DATADIF(A2;B2;"M"))&" dia(s)"
Meses não têm tamanho fixo, então dividir o total de dias por 30 dá números aproximados. O artigo sobre meses entre duas datas aprofunda esse ponto.
DATADIF com datas invertidas
Aqui está a maior diferença em relação à subtração e a DIAS: se a data inicial for maior que a final, DATADIF retorna #NÚM!, em vez de um número negativo. Se a ordem das datas pode variar na sua planilha, proteja a fórmula:
=SE(A2>B2;"Datas invertidas";DATADIF(A2;B2;"D"))
Ou, se você só quer a distância em dias, prefira =ABS(B2-A2).
Tabela de exemplos conferidos
Todos os resultados abaixo foram calculados e conferidos. “Decorridos” corresponde a =B2-A2 (exclui a data inicial). “Contando as duas datas” corresponde a =B2-A2+1.
| Data inicial | Data final | Decorridos | Contando as duas datas |
|---|---|---|---|
| 10/03/2026 | 12/03/2026 | 2 | 3 |
| 15/12/2025 | 10/01/2026 | 26 | 27 |
| 01/02/2028 | 01/03/2028 | 29 | 30 |
| 01/02/2027 | 01/03/2027 | 28 | 29 |
| 01/01/2026 | 31/12/2026 | 364 | 365 |
| 15/01/2025 | 10/09/2026 | 603 | 604 |
O que cada linha mostra:
- 10/03 a 12/03/2026: o exemplo básico da diferença entre dias decorridos e datas de calendário.
- 15/12/2025 a 10/01/2026: a virada de ano não exige nenhum ajuste na fórmula.
- 01/02 a 01/03/2028: 2028 é bissexto, então fevereiro tem 29 dias e o resultado é 29. No mesmo intervalo de 2027, que não é bissexto, o resultado é 28. O artigo sobre ano bissexto explica a regra.
- 01/01 a 31/12/2026: a subtração dá 364, e não 365, porque a data inicial não entra. Para contar todos os dias do ano de 2026, some 1.
- 15/01/2025 a 10/09/2026: um intervalo longo, com resultado em dias (603) e também em 1 ano, 7 meses e 26 dias pela DATADIF.
Calcular dias até hoje com HOJE()
A função HOJE() devolve a data atual do computador e não tem argumentos. Ela é recalculada quando a planilha é aberta ou atualizada, o que é ideal para contadores.
Dias desde uma data (com a data em A2):
=HOJE()-A2
Dias que faltam até uma data futura:
=A2-HOJE()
Exemplos conferidos, considerando que hoje é 21/09/2026:
| Fórmula | Resultado em 21/09/2026 |
|---|---|
=HOJE()-DATA(2026;1;1) |
263 dias desde 01/01/2026 |
=DATA(2026;12;25)-HOJE() |
95 dias até 25/12/2026 |
=DATADIF(DATA(2020;3;15);HOJE();"Y") |
6 anos completos desde 15/03/2020 |
Como HOJE() muda todos os dias, o resultado de amanhã será diferente. Se você precisa registrar o valor de uma data específica, copie a célula e use Colar Especial, Valores. Para conferir rapidamente sem abrir planilha, você pode calcular a duração entre datas direto no site.
Quando o resultado aparece como data
Um problema frequente: você digita =B2-A2 e aparece 26/01/1900 em vez de 26. O cálculo está certo; a célula herdou o formato de data das células de origem. Como o número 26 é o número de série de 26/01/1900, o Excel exibe essa data.
Para corrigir:
- Selecione a célula do resultado.
- Pressione Ctrl+1 (no Mac, Cmd+1) para abrir Formatar Células.
- Na guia Número, escolha Geral ou Número com zero casas decimais.
O inverso também acontece: uma fórmula que deveria mostrar uma data aparece como 46286. Nesse caso, escolha a categoria Data no mesmo menu.
Quando as datas estão armazenadas como texto
Datas importadas de sistemas, arquivos CSV ou relatórios copiados da web às vezes chegam como texto. Sinais comuns:
- a data fica alinhada à esquerda da célula, enquanto números e datas verdadeiras ficam à direita por padrão;
- o Excel mostra um triângulo verde de verificação de erro no canto da célula;
- a subtração devolve
#VALOR!.
Há três caminhos para converter:
1. Função DATA.VALOR
DATA.VALOR converte uma data armazenada como texto em um número de série que o Excel reconhece como data:
=DATA.VALOR(A2)
Depois, formate a célula como data. Se quiser substituir o texto original, copie os resultados e use Colar Especial, Valores sobre as células de origem. O texto precisa estar em um formato de data que o Excel entenda nas suas configurações regionais; caso contrário, o resultado é #VALOR!.
2. Texto para Colunas
Selecione a coluna com as datas e vá em Dados > Ferramentas de Dados > Texto para Colunas. No assistente, avance até a etapa de formato dos dados da coluna e escolha Data com a ordem dia, mês e ano (DMA). Esse método converte a coluna inteira de uma vez, sem colunas auxiliares.
3. Verificação de erros
Quando o triângulo verde aparece, selecione a célula e clique no botão de aviso. Para datas com ano de dois dígitos, o Excel oferece opções como converter o ano para 20XX ou 19XX. Sempre que possível, trabalhe com anos de quatro dígitos para evitar que 01/02/30 seja lido no século errado.
Erros comuns e como resolver
| Erro | Causa provável | Como resolver |
|---|---|---|
#VALOR! |
Uma das datas é texto que o Excel não reconhece | Converta com DATA.VALOR ou Texto para Colunas |
#NÚM! em DATADIF |
Data inicial maior que a final | Inverta as datas ou use SE para tratar o caso |
#NÚM! em DIAS |
Data fora do intervalo válido do Excel | Use datas entre 01/01/1900 e 31/12/9999 |
#### |
Coluna estreita ou resultado negativo formatado como data | Alargue a coluna ou mude o formato para Número |
#NOME? |
Nome de função em outro idioma, como DAYS no Excel em português | Use o nome em pt-BR: DIAS, DATADIF, HOJE |
| Resultado com 1 dia a menos | A subtração não conta a data inicial | Some 1 se a sua regra contar as duas datas |
Um cuidado com datas que têm horário
Se as células tiverem data e hora, a subtração devolve um número com casas decimais: de 10/03/2026 18:00 a 12/03/2026 00:00, o resultado é 1,25. Para contar só os dias de calendário, arredonde as datas para baixo com INT antes de subtrair:
=INT(B2)-INT(A2)
Qual fórmula escolher
- Só precisa de dias corridos: use
=B2-A2. É simples e aceita datas invertidas, devolvendo número negativo. - Quer deixar a fórmula mais legível: use
=DIAS(B2;A2), lembrando que a data final vem primeiro. - Precisa de meses ou anos completos, como idade ou tempo de casa: use DATADIF com
"M"ou"Y", e evite"MD". - Precisa contar as duas datas: some 1 a qualquer uma das fórmulas.
- Precisa excluir sábados, domingos e feriados: a subtração não serve. Use as funções do artigo sobre dias úteis no Excel.
Se você usa Google Planilhas em vez de Excel, a lógica é parecida, mas há diferenças de nomes e comportamento. Veja como calcular dias entre duas datas no Google Planilhas.


