=DATADIF(B2;HOJE();"Y") retorna a idade em anos completos de quem nasceu na data em B2. A DATADIF (DATEDIF em inglês) conta os anos completos entre duas datas, e a HOJE() (TODAY em inglês) fornece a segunda data, então a idade sobe um a cada aniversário. 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.
| A | B | C | |
|---|---|---|---|
| 1 | Name | Born | Age |
| 2 | Ana | 1990-05-14 | 36 |
| 3 | Ben | 1985-11-30 | 40 |
| 4 | Chloe | 2001-02-28 | 25 |
| 5 | Dan | 1978-10-10 | 47 |
| 6 | Eva | 2010-07-04 | 16 |
=DATADIF(B2;HOJE();"Y")As idades da coluna C são calculadas a partir da data de hoje, então mudam ao longo do ano. Mude uma data de nascimento na coluna B e a idade ao lado acompanha. A fórmula tem três argumentos: a data inicial (a data de nascimento), a data final (hoje) e a unidade, "Y" para anos completos.
Idade em uma data específica
Para ter a idade em um dia fixo, como o início do ano letivo ou a data de um contrato, coloque esse dia em uma célula e use a célula no lugar de HOJE(). O $ em $F$2 mantém a referência em F2 quando a fórmula é arrastada para baixo.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Name | Born | Age | As of | ||
| 2 | Ana | 1990-05-14 | 36 | 2026-10-01 | ||
| 3 | Ben | 1985-11-30 | 40 | |||
| 4 | Chloe | 2001-02-28 | 25 | |||
| 5 | Dan | 1978-10-10 | 47 | |||
| 6 | Eva | 2010-07-04 | 16 |
=DATADIF(B2;$F$2;"Y")Em 2026-10-01 Ana tem 36 anos e Dan tem 47: o aniversário dele, em 10 de outubro, ainda não chegou. Mude F2 para 2026-10-10 e Dan faz 48. Essa versão também dá o mesmo resultado toda vez que o arquivo é aberto, o que importa quando a idade vai para um relatório. Veja a página da DATADIF para as outras unidades.
Idade em anos, meses e dias
A DATADIF tem unidades para o que sobra depois dos anos completos: "YM" conta os meses depois do último ano completo, e "MD" os dias depois do último mês completo. Junte os três com & para escrever a idade como texto.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Born | Years | Months | Days | Age | As of |
| 2 | 1990-05-14 | 36 | 4 | 17 | 36 years, 4 months, 17 days | 2026-10-01 |
| 3 | 1978-10-10 | 47 | 11 | 21 | 47 years, 11 months, 21 days |
=B2&" years, "&C2&" months, "&D2&" days"De 1990-05-14 a 2026-10-01 são 36 anos, 4 meses e 17 dias. A Microsoft desaconselha a unidade "MD" porque ela pode retornar um número de dias negativo ou errado em alguns casos, como uma data de nascimento no dia 31. Confira o número de dias quando a data de nascimento cai entre os dias 29 e 31.
Calcular a idade sem a DATADIF
A DATADIF funciona em todas as versões do Excel, mas não aparece na lista de funções nem no preenchimento automático de fórmulas, então algumas pessoas preferem a FRAÇÃOANO (YEARFRAC em inglês). FRAÇÃOANO(início;fim;1) retorna os anos entre duas datas como decimal, contando a duração real de cada ano (base 1). A INT descarta a fração.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Born | As of | DATEDIF | YEARFRAC |
| 2 | 1990-05-14 | 2026-10-01 | 36 | 36 |
| 3 | 1978-10-10 | 2026-10-01 | 47 | 47 |
| 4 | 2010-07-04 | 2026-10-01 | 16 | 16 |
=INT(FRAÇÃOANO(A2;B2;1))As duas colunas concordam: 36, 47 e 16. Sem a INT, a FRAÇÃOANO da última linha retorna cerca de 16,24, o que é útil quando você precisa da idade como decimal, por exemplo em uma planilha de estatística.
Por que não dividir por 365
Um atalho comum é =INT((F2-B2)/365): o número de dias vividos dividido pelos dias de um ano. Os anos bissextos acrescentam um dia a cada quatro anos, então depois de algumas décadas a fórmula chega à próxima idade dias antes do aniversário: 12 dias antes, no caso de um aniversário de 48 anos.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Born | As of | Days lived | Divide by 365 | DATEDIF |
| 2 | 1990-05-14 | 2026-10-01 | 13289 | 36 | 36 |
| 3 | 1978-10-10 | 2026-10-01 | 17523 | 48 | 47 |
=INT(C2/365)Para quem nasceu em 1978-10-10, dividir por 365 dá 48 em 2026-10-01, nove dias antes do aniversário de 48 anos. A DATADIF dá 47. Dividir por 365,25 corrige a maioria das linhas, mas ainda erra em algumas datas, então use a DATADIF ou a FRAÇÃOANO.
Prática: idade no primeiro dia de aula
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Name | Born | Age | As of | |
| 2 | Ana | 2012-04-17 | 2026-09-01 |
Sua vez: Em C2, calcule a idade de Ana em anos completos na data em E2.
As verificações ocultas mudam a data em E2, então a fórmula precisa ler essa célula.
Por que a idade aparece como data
Se você digita a fórmula de idade em uma célula que já tem uma data, ou em uma coluna formatada como data, o Excel mantém o formato de data e mostra 36 como 1900-02-05 (o dia 36 do sistema de datas do Excel; com configurações do Brasil aparece 05/02/1900). O número por baixo está certo. Selecione as células e escolha Página Inicial > Formato de Número > Geral (ou pressione Ctrl+Shift+~, Control+Shift+~ no Mac) e a idade aparece.
Perguntas frequentes
Qual é a fórmula para calcular a idade no Excel?
=DATADIF(B2;HOJE();"Y"), com a data de nascimento em B2. Ela conta os anos completos da data de nascimento até hoje, então a idade sobe no próprio dia do aniversário, não antes.
Como calcular a idade em uma data específica no Excel?
Coloque a data em uma célula e use-a no lugar de HOJE(): =DATADIF(B2;$F$2;"Y") dá a idade na data em F2. Os $ mantêm F2 fixa quando você arrasta a fórmula para baixo.
Como calcular a idade no Excel sem a DATADIF?
Use =INT(FRAÇÃOANO(B2;HOJE();1)). A FRAÇÃOANO retorna os anos entre as duas datas como decimal, e a INT fica com os anos inteiros.
Por que minha fórmula de idade mostra uma data como 1900-01-30?
A célula está formatada como data, então a idade 30 aparece como o dia 30 do calendário do Excel. Selecione a célula e escolha Página Inicial > Formato de Número > Geral.
Por que dividir por 365 dá a idade errada?
Os anos bissextos acrescentam um dia a cada quatro anos, então =INT((HOJE()-B2)/365) conta o aniversário alguns dias antes: quem nasceu em 1978-10-10 tem 48 anos por essa fórmula em 2026-10-01, nove dias antes de fazer 48. A DATADIF conta anos do calendário e não tem esse erro.