
Fórmula genérica
=DATEDIF(birthdate,TODAY(),"y")
Resumo
Para calcular a idade a partir de uma data de nascimento, você pode usar a função DATEDIF junto com a função TODAY. No exemplo mostrado, a fórmula na célula E5, copiada, é:
=DATEDIF(D5,TODAY(),"y")
Como TODAY sempre retorna a data atual, a fórmula continuará a calcular a idade correta no futuro.
Explicação
A função DATEDIF (Date + Dif) é uma anomalia no Excel. Uma função de compatibilidade que vem originalmente do Lotus 1-2-3, o Excel não ajudará a fornecer argumentos quando a função for inserida. No entanto, DATEDIF funciona em todas as versões modernas do Excel e é uma função útil para calcular o intervalo entre duas datas em anos, meses e dias.
No exemplo mostrado, o objetivo é calcular a idade em anos. A fórmula em E5 é:
=DATEDIF(D5,TODAY(),"y")
Os primeiros dois argumentos para DATEDIF são start_date e end_date. A data de início vem da célula D5 (15 de maio de 2001) no exemplo. A data de término é gerada com a função TODAY. TODAY sempre retorna a data atual no Excel. No momento da redação deste artigo, a data atual é 24 de novembro de 2020. O último argumento em DATEDIF especifica a unidade de tempo. A função DATEDIF oferece suporte a várias opções aqui, mas, para este exemplo, o objetivo é a idade em anos inteiros, portanto, usamos "y" para especificar anos completos.
Neste ponto, podemos reescrever a fórmula conforme abaixo:
=DATEDIF("15-May-2001","24-Nov-2020", "y")
Como as datas do Excel são, na verdade, números de série, os valores brutos são:
=DATEDIF(37026,44159,"y")
Com essas entradas, DATEDIF retorna 19 como resultado final.
Idade em data específica
Para calcular a idade em uma data específica, substitua a função HOJE pela data prevista. Uma maneira fácil e segura de codificar uma data específica em uma fórmula é usar a função DATE. Por exemplo, para calcular a idade a partir de 1º de janeiro de 2021, você pode usar uma fórmula como esta:
=DATEDIF(D5,DATE(2022,1,1),"y") // returns 20
Esta fórmula retornará a idade de Michael Chang em 1º de janeiro de 2022, que é 20.
Adulto ou menor
Para verificar uma data de nascimento e retornar "Menor" ou "Adulto", você pode envolver a fórmula na função SE assim:
=IF(DATEDIF(D5,TODAY(),"y")<18,"Minor","Adult")
A fórmula acima é um exemplo de aninhamento. Substitua 18 pela idade apropriada.
Idade em anos, meses e dias
Para calcular a idade em anos, meses e dias, use três instâncias de DATEDIF como este:
=DATEDIF(A1,TODAY(),"y")&"y "&DATEDIF(A1,TODAY(),"ym")&"m "&DATEDIF(A1,TODAY(),"md")&"d"
A primeira instância de DATEDIF retorna anos, a segunda instância retorna meses e a terceira instância retorna dias. Este é um exemplo de concatenação, e o resultado é uma string de texto como esta:
19y 6m 9d
Observe que as datas de início e término permanecem as mesmas em todos os três DATEDIFs; apenas a unidade é alterada.
YEARFRAC com INT
Outra opção para calcular a idade a partir da data de nascimento usa a função YEARFRAC junto com a função INT em uma fórmula como esta:
=INT(YEARFRAC(D5,TODAY()))
YEARFRAC calcula um número decimal que representa a fração de um ano entre duas datas. Para calcular a fração de um ano como valor decimal, o Excel usa dias entre duas datas. Como acima, a data de nascimento é fornecida como start_date da célula D5 e a data de hoje é fornecida como end_date, cortesia da função TODAY.
Com a data atual de 24 de novembro de 2020, o resultado de YEARFRAC para Michael Chang é:
19.5290896646133
Em seguida, a função INT assume e arredonda esse número para o valor inteiro, que é o número 19.
=INT(19.5290896646133) // returns 19
Esta fórmula parece perfeitamente lógica e funciona bem na maioria dos casos. No entanto, YEARFRAC pode retornar um número incorreto nas datas de aniversário (aniversários). Não sei exatamente por que isso acontece, mas está relacionado a como YEARFRAC usa dias para determinar anos fracionários, que é controlado pelo argumento de base. Por exemplo:
=YEARFRAC(DATE(1960,6,30),DATE(1962,6,30),1) // 1.998, should be 2 =YEARFRAC(DATE(1960,3,3),DATE(1964,3,3),1) // 3.998, should be 4
O resultado final é que a fórmula DATEDIF de data é uma opção mais segura e fácil quando o objetivo é relatar a idade em anos inteiros.