As respostas dadas por chuff e teylyn funcionam bem para cálculos científicos; por exemplo, a altura normal e o peso de uma pessoa de uma dada idade ou quanto tempo uma garrafa de vinho envelheceu. Isso pode ser bom o suficiente para você. Mas eles não são perfeitos para fins legais; por exemplo, em 31/05/2013, sua fórmula computou 16.99931554. É certo que isso será exibido como 17.00
se exibir dois dígitos decimais, mas será testado como sendo menor que 17. Não é bom se você estiver tentando calcular a idade de alguém no sentido normal, societal / legal, que usaríamos para determinar por exemplo, se ele tem idade suficiente para comprar aquela garrafa de vinho.
Por questões de brevidade, usarei a sugestão alternativa de que a data antiga está em A1
e que a data de hoje está em T1
. Eu sugiro que você use esta fórmula:
=(YEAR(T1)-YEAR(A1)) + (DATE(YEAR(A1),MONTH(T1),DAY(T1))-A1)/365.25
Isso calcula a diferença entre os dois anos e, em seguida, calcula a diferença do ano fracionário entre a data de início e a data atual espelhada no ano antigo . Por exemplo,
Estou escrevendo isso em 12 de junho de 2013. A primeira parte da fórmula acima, YEAR(T1)-YEAR(A1)
(os parênteses ao redor não são necessários) é 2013-1996
, que, é claro, é exatamente 17
.
O segundo termo,
(DATE(YEAR(A1),MONTH(T1),DAY(T1))-A1)/365.25
torna-se (DATE(1996,6,12)-A1)/365.25
ou ("6/12/1996"-"5/31/1996")/365.25
ou 12/365.25
,
que é 0.03012
, então a soma é 17.03012
.
Mas se T1
for 5/31/2013
, a fórmula será avaliada como 17.00000
.
Oh, minha fórmula tem uma pequena falha. Se a data antiga estiver em um ano não bissexto (por exemplo, 31/5/1995) e o ano atual for bissexto (por exemplo, 2012), então T1
= 2/29/2012
e T1
= 3/1/2012
produzirá o mesmo resultado, porque, apesar de o Excel gerar um erro para 2/29/1995
, ele trata DATE(1995,2,29)
como 3/1/1995
.