Обща формула
=DATEDIF(birthdate,TODAY(),"y")
Обобщение
За да изчислите възрастта от датата на раждане, можете да използвате функцията DATEDIF заедно с функцията ДНЕС. В показания пример формулата в клетка E5, копирана надолу, е:
=DATEDIF(D5,TODAY(),"y")
Тъй като ДНЕС винаги връща текущата дата, формулата ще продължи да изчислява точната възраст в бъдеще.
Обяснение
Функцията DATEDIF (Date + Dif) е малко аномалия в Excel. Функция за съвместимост, която първоначално идва от Lotus 1-2-3, Excel няма да помогне за предоставяне на аргументи при въвеждане на функцията. DATEDIF обаче работи във всички съвременни версии на Excel и е полезна функция за изчисляване на интервала между две дати в години, месеци и дни.
В показания пример целта е да се изчисли възрастта в години. Формулата в E5 е:
=DATEDIF(D5,TODAY(),"y")
Първите два аргумента за DATEDIF са start_date и end_date. Началната дата идва от клетка D5 (15 май 2001 г.) в примера. Крайната дата се генерира с функцията ДНЕС. ДНЕС винаги връща текущата дата в Excel. Към момента на писане настоящата дата е 24 ноември 2020 г. Последният аргумент в DATEDIF указва единицата време. Функцията DATEDIF поддържа няколко опции тук, но за този пример целта е възрастта в цели години, така че използваме "y", за да посочим цели години.
На този етап можем да пренапишем формулата, както по-долу:
=DATEDIF("15-May-2001","24-Nov-2020", "y")
Тъй като датите на Excel всъщност са серийни номера, суровите стойности са:
=DATEDIF(37026,44159,"y")
С тези входове DATEDIF връща 19 като краен резултат.
Възраст на конкретна дата
За да изчислите възрастта на определена дата, заменете функцията ДНЕС с целевата дата. Лесен и сигурен начин за кодиране на определена дата във формула е използването на функцията DATE. Например, за да изчислите възрастта към 1 януари 2021 г., можете да използвате формула като тази:
=DATEDIF(D5,DATE(2022,1,1),"y") // returns 20
Тази формула ще върне възрастта на Майкъл Чанг на 1 януари 2022 г., която е 20.
Възрастен или непълнолетен
За да проверите датата на раждане и да върнете „Непълнолетен“ или „Възрастен“, можете да увиете формулата във функцията IF така:
=IF(DATEDIF(D5,TODAY(),"y")<18,"Minor","Adult")
Горната формула е пример за гнездене. Заменете 18 с подходяща възраст.
Възраст в години, месеци и дни
За да изчислите възрастта в години, месеци и дни, използвайте три случая на DATEDIF по следния начин:
=DATEDIF(A1,TODAY(),"y")&"y "&DATEDIF(A1,TODAY(),"ym")&"m "&DATEDIF(A1,TODAY(),"md")&"d"
Първата инстанция на DATEDIF връща години, втората инстанция връща месеци, а третата инстанция връща дни. Това е пример за обединяване и резултатът е текстов низ като този:
19y 6m 9d
Забележете началните и крайните дати остават едни и същи и в трите DATEDIF; само единицата се сменя.
ГОДИНА с INT
Друга възможност за изчисляване на възрастта от датата на раждане използва функцията YEARFRAC заедно с функцията INT във формула като тази:
=INT(YEARFRAC(D5,TODAY()))
YEARFRAC изчислява десетично число, представляващо част от годината между две дати. За да определи частта от годината като десетична стойност, Excel използва дни между две дати. Както по-горе, рождената дата се предоставя като начална дата от клетка D5, а днешната дата се предоставя като крайна дата, благодарение на функцията ДНЕС.
С текуща дата 24 ноември 2020 г., резултатът от YEARFRAC за Майкъл Чанг е:
19.5290896646133
След това функцията INT поема и закръглява това число до целочислената стойност, която е числото 19.
=INT(19.5290896646133) // returns 19
Тази формула изглежда напълно логична и работи добре в повечето случаи. YEARFRAC обаче може да върне номер, който не е правилен на датите на годишнината (рождените дни). Не съм сигурен защо точно се случва това, но е свързано с това как YEARFRAC използва дни за определяне на частични години, което се контролира от основния аргумент. Например:
=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
Изводът е, че формулата за дата DATEDIF е по-безопасна и лесна опция, когато целта е да се отчете възрастта в цели години.