Excel vzorec: Získajte vek od narodenia -

Obsah

Všeobecný vzorec

=DATEDIF(birthdate,TODAY(),"y")

Zhrnutie

Na výpočet veku od dátumu narodenia môžete použiť funkciu DATEDIF spolu s funkciou DNES. V zobrazenom príklade je vzorec v bunke E5, skopírovaný nadol,:

=DATEDIF(D5,TODAY(),"y")

Pretože DNES vždy vráti aktuálny dátum, vzorec bude v budúcnosti pokračovať vo výpočte správneho veku.

Vysvetlenie

Funkcia DATEDIF (Date + Dif) je v programe Excel trochu anomáliou. Funkcia kompatibility, ktorá pochádza pôvodne z Lotus 1-2-3, Excel pri zadávaní funkcie nepomôže dodať argumenty. DATEDIF však funguje vo všetkých moderných verziách Excelu a je užitočnou funkciou na výpočet intervalu medzi dvoma dátumami v rokoch, mesiacoch a dňoch.

V zobrazenom príklade je cieľom vypočítať vek v rokoch. Vzorec v E5 je:

=DATEDIF(D5,TODAY(),"y")

Prvé dva argumenty pre DATEDIF sú start_date a end_date. Dátum spustenia pochádza z bunky D5 (15. mája 2001) v príklade. Dátum ukončenia sa generuje funkciou DNES. DNES vždy vráti aktuálny dátum v programe Excel. V čase písania tohto článku je aktuálnym dátumom 24. november 2020. Posledný argument v DATEDIF určuje časovú jednotku. Funkcia DATEDIF tu podporuje niekoľko možností, ale pre tento príklad je cieľom vek v celých rokoch, takže na určenie celých rokov používame „y“.

V tomto okamihu môžeme vzorec prepísať takto:

=DATEDIF("15-May-2001","24-Nov-2020", "y")

Pretože dátumy programu Excel sú v skutočnosti sériové čísla, nespracované hodnoty sú:

=DATEDIF(37026,44159,"y")

S týmito vstupmi vráti DATEDIF 19 ako konečný výsledok.

Vek v konkrétny dátum

Ak chcete vypočítať vek v konkrétny dátum, nahraďte funkciu DNES cieľovým dátumom. Ľahký a bezpečný spôsob, ako napevno napísať konkrétny dátum do vzorca, je použitie funkcie DÁTUM. Napríklad na výpočet veku k 1. januáru 2021 môžete použiť nasledujúci vzorec:

=DATEDIF(D5,DATE(2022,1,1),"y") // returns 20

Tento vzorec vráti vek Michaela Changa 1. januára 2022, čo je 20.

Dospelý alebo maloletý

Ak chcete skontrolovať dátum narodenia a vrátiť hodnotu „Minor“ alebo „Adult“, môžete vzorec zabaliť do funkcie IF takto:

=IF(DATEDIF(D5,TODAY(),"y")<18,"Minor","Adult")

Vyššie uvedený vzorec je príkladom vnorenia. Vymeňte 18 za akýkoľvek vhodný vek.

Vek v rokoch, mesiacoch a dňoch

Na výpočet veku v rokoch, mesiacoch a dňoch použite tri inštancie DATEDIF, ako je tento:

=DATEDIF(A1,TODAY(),"y")&"y "&DATEDIF(A1,TODAY(),"ym")&"m "&DATEDIF(A1,TODAY(),"md")&"d"

Prvá inštancia DATEDIF vráti roky, druhá inštancia vráti mesiace a tretia inštancia vráti dni. Toto je príklad zreťazenia a výsledkom je textový reťazec, ako je tento:

19y 6m 9d

Dátum začatia a ukončenia poznámky zostávajú rovnaké vo všetkých troch DATEDIFoch; zmenená je iba jednotka.

YEARFRAC s INT

Ďalšou možnosťou výpočtu veku od dátumu narodenia je funkcia YEARFRAC spolu s funkciou INT v tomto vzorci:

=INT(YEARFRAC(D5,TODAY()))

YEARFRAC počíta desatinné číslo predstavujúce zlomok roka medzi dvoma dátumami. Na výpočet zlomku roka ako desatinnej hodnoty používa program Excel dni medzi dvoma dátumami. Ako je uvedené vyššie, dátum narodenia sa poskytuje ako počiatočný dátum z bunky D5 a dnešný dátum sa dodáva ako end_date, vďaka funkcii DNES.

S aktuálnym dátumom 24. novembra 2020 je výsledok z YEARFRAC pre Michaela Changa:

19.5290896646133

Ďalej funkcia INT prevezme a zaokrúhli toto číslo na celočíselnú hodnotu, čo je číslo 19.

=INT(19.5290896646133) // returns 19

Tento vzorec sa javí ako úplne logický a vo väčšine prípadov funguje dobre. YEARFRAC však môže vrátiť číslo, ktoré nie je správne v deň výročia (narodeniny). Nie som si úplne istý, prečo sa to stane, ale súvisí to s tým, ako YEARFRAC používa dni na určenie zlomkových rokov, ktoré sú riadené základným argumentom. Napríklad:

=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

Záverom je, že vzorec na výpočet dátumu DATEDIF je bezpečnejšou a ľahšou voľbou, ak je cieľom uvádzať vek v celých rokoch.

Zaujímavé články...