Fórmula do Excel: Obter idade desde o aniversário -

Índice

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.

Artigos interessantes...