Excel formula: Iegūstiet vecumu no dzimšanas dienas

Satura rādītājs

Vispārēja formula

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

Kopsavilkums

Lai aprēķinātu vecumu pēc dzimšanas datuma, varat izmantot funkciju DATEDIF kopā ar funkciju ŠODIEN. Parādītajā piemērā šūnas E5 formula, kas nokopēta uz leju, ir:

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

Tā kā ŠODIEN vienmēr atgriež pašreizējo datumu, formula turpinās aprēķināt pareizo vecumu nākotnē.

Paskaidrojums

Funkcija DATEDIF (Date + Dif) ir nedaudz anomālija programmā Excel. Saderības funkcija, kas sākotnēji nāk no Lotus 1-2-3, Excel nepalīdzēs sniegt argumentus, ievadot funkciju. Tomēr DATEDIF darbojas visās mūsdienu Excel versijās un ir noderīga funkcija, lai aprēķinātu intervālu starp diviem datumiem gados, mēnešos un dienās.

Parādītajā piemērā mērķis ir aprēķināt vecumu gados. E5 formula ir:

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

Pirmie divi DATEDIF argumenti ir sākuma_datums un beigu_datums. Sākuma datums nāk no piemēra šūnas D5 (2001. gada 15. maijs). Beigu datums tiek ģenerēts ar funkciju TODAY. ŠODIEN vienmēr Excel programmā atgriež pašreizējo datumu. Šajā rakstā pašreizējais datums ir 2020. gada 24. novembris. Pēdējais arguments DATEDIF norāda laika vienību. Funkcija DATEDIF šeit atbalsta vairākas iespējas, taču šim piemēram piemērs ir vecums veselos gados, tāpēc mēs izmantojam "y", lai norādītu pilnus gadus.

Šajā brīdī mēs varam pārrakstīt formulu šādi:

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

Tā kā Excel datumi faktiski ir sērijas numuri, sākotnējās vērtības ir:

=DATEDIF(37026,44159,"y")

Izmantojot šos datus, DATEDIF atgriež 19 kā gala rezultātu.

Vecums noteiktā datumā

Lai aprēķinātu vecumu noteiktā datumā, aizstājiet funkciju ŠODIEN ar mērķa datumu. Vienkāršs un drošs veids, kā noteiktā datuma kodu kodēt formulā, ir DATE funkcijas izmantošana. Piemēram, lai aprēķinātu vecumu no 2021. gada 1. janvāra, varat izmantot šādu formulu:

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

Šī formula atgriezīs Maikla Čanga vecumu 2022. gada 1. janvārī, kas ir 20 gadu.

Pieaugušais vai nepilngadīgais

Lai pārbaudītu dzimšanas datumu un atgrieztu “Nepilngadīgais” vai “Pieaugušais”, funkciju IF var ietīt formulu šādi:

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

Iepriekš minētā formula ir ligzdošanas piemērs. 18 aizstājiet ar jebkuru vecumu, kas ir piemērots.

Vecums gados, mēnešos un dienās

Lai aprēķinātu vecumu gados, mēnešos un dienās, izmantojiet trīs šādus DATEDIF gadījumus:

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

Pirmais DATEDIF gadījums atgriež gadus, otrais atgriež mēnešus, bet trešais - dienas. Šis ir savienošanas piemērs, un rezultāts ir šāda teksta virkne:

19y 6m 9d

Piezīme: sākuma un beigu datumi paliek nemainīgi visos trīs DATEDIF; tiek mainīta tikai vienība.

YEARFRAC ar INT

Vēl viena iespēja aprēķināt vecumu no dzimšanas datuma izmanto YEARFRAC funkciju kopā ar INT funkciju šādā formulā:

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

YEARFRAC aprēķina decimāldaļu, kas apzīmē gada daļu starp diviem datumiem. Lai aprēķinātu gada daļu kā decimālo vērtību, Excel izmanto dienas starp diviem datumiem. Tāpat kā iepriekš, dzimšanas datums tiek norādīts kā sākuma datums no šūnas D5, un šodienas datums tiek norādīts kā beigu datums, pateicoties laipni funkcijai ŠODIEN.

Pašreizējais 2020. gada 24. novembra YEARFRAC rezultāts Maiklam Čangam ir šāds:

19.5290896646133

Tālāk INT funkcija pārņem un noapaļo šo skaitli līdz veselai skaitlim, kas ir skaitlis 19.

=INT(19.5290896646133) // returns 19

Šī formula šķiet pilnīgi loģiska, un vairumā gadījumu tā darbojas labi. Tomēr YEARFRAC var atgriezt skaitli, kas gadadienas datumos (dzimšanas dienās) nav pareizs. Es neesmu precīzi zināms, kāpēc tas notiek, bet tas ir saistīts ar to, kā YEARFRAC izmanto dienas, lai noteiktu daļu gadus, ko kontrolē pamata arguments. Piemēram:

=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

Apakšējā līnija ir tāda, ka datuma DATEDIF formula ir drošāka un vieglāka iespēja, ja mērķis ir ziņot par vecumu veselos gados.

Interesanti raksti...