Excel-formel: Få alder fra fødselsdagen -

Indholdsfortegnelse

Generisk formel

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

Resumé

For at beregne alder fra en fødselsdato kan du bruge funktionen DATEDIF sammen med funktionen I DAG. I det viste eksempel er formlen i celle E5, kopieret ned,:

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

Da DAG altid returnerer den aktuelle dato, fortsætter formlen med at beregne den korrekte alder i fremtiden.

Forklaring

DATEDIF-funktionen (Date + Dif) er lidt af en anomali i Excel. En kompatibilitetsfunktion, der oprindeligt kommer fra Lotus 1-2-3, hjælper ikke Excel med at levere argumenter, når funktionen indtastes. DATEDIF fungerer dog i alle moderne versioner af Excel og er en nyttig funktion til beregning af intervallet mellem to datoer i år, måneder og dage.

I det viste eksempel er målet at beregne alder i år. Formlen i E5 er:

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

De to første argumenter for DATEDIF er startdato og slutdato. Startdatoen kommer fra celle D5 (15. maj 2001) i eksemplet. Slutdatoen genereres med funktionen I DAG. I DAG returnerer altid den aktuelle dato i Excel. I skrivende stund er den aktuelle dato den 24. november 2020. Det sidste argument i DATEDIF specificerer tidsenheden. DATEDIF-funktionen understøtter flere muligheder her, men i dette eksempel er målet alder i hele år, så vi bruger "y" til at specificere komplette år.

På dette tidspunkt kan vi omskrive formlen som nedenfor:

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

Da Excel-datoer faktisk er serienumre, er de rå værdier:

=DATEDIF(37026,44159,"y")

Med disse input returnerer DATEDIF 19 som et endeligt resultat.

Alder på specifik dato

For at beregne alder på en bestemt dato skal du erstatte TODAY-funktionen med måldatoen. En nem og sikker måde at hardcode en bestemt dato i en formel er at bruge DATE-funktionen. For eksempel for at beregne alder pr. 1. januar 2021 kan du bruge en formel som denne:

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

Denne formel returnerer Michael Changs alder 1. januar 2022, som er 20.

Voksen eller mindreårig

For at kontrollere fødselsdato og returnere "Mindre" eller "Voksen" kan du pakke formlen i IF-funktionen sådan:

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

Ovenstående formel er et eksempel på indlejring. Udskift 18 med den alder, der passer.

Alder i år, måneder og dage

For at beregne alder i år, måneder og dage skal du bruge tre forekomster af DATEDIF som denne:

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

Den første forekomst af DATEDIF returnerer år, den anden forekomst returnerer måneder, og den tredje forekomst returnerer dage. Dette er et eksempel på sammenkædning, og resultatet er en tekststreng som denne:

19y 6m 9d

Bemærk start- og slutdatoer forbliver de samme i alle tre DATEDIF'er; kun enheden ændres.

YEARFRAC med INT

En anden mulighed til beregning af alder fra fødselsdato bruger YEARFRAC-funktionen sammen med INT-funktionen i en formel som denne:

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

YEARFRAC beregner et decimaltal, der repræsenterer brøkdelen af ​​et år mellem to datoer. For at beregne brøkdelen af ​​et år som en decimalværdi bruger Excel dage mellem to datoer. Som ovenfor leveres fødselsdatoen som startdatoen fra celle D5, og dagens dato leveres som slutdatoen, takket være TODAY-funktionen.

Med en aktuel dato den 24. november 2020 er resultatet fra YEARFRAC for Michael Chang:

19.5290896646133

Dernæst overtager INT-funktionen og afrunder dette tal til heltalets værdi, som er tallet 19.

=INT(19.5290896646133) // returns 19

Denne formel virker perfekt logisk, og den fungerer i de fleste tilfælde fint. YEARFRAC kan dog returnere et nummer, der ikke er korrekt, på jubilæumsdatoer (fødselsdage). Jeg er ikke helt sikker på, hvorfor dette sker, men det er relateret til, hvordan YEARFRAC bruger dage til at bestemme brøkår, som styres af basisargumentet. For eksempel:

=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

Bundlinjen er, at datoen DATEDIF-formel er en sikrere og lettere mulighed, når målet er at rapportere alder i hele år.

Interessante artikler...