Excel-formel: Få ålder från födelsedag -

Innehållsförteckning

Generisk formel

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

Sammanfattning

För att beräkna ålder från födelsedatum kan du använda funktionen DATEDIF tillsammans med funktionen I DAG. I exemplet som visas är formeln i cell E5, kopierad ned:

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

Eftersom TODAY alltid returnerar det aktuella datumet fortsätter formeln att beräkna rätt ålder i framtiden.

Förklaring

DATEDIF-funktionen (Date + Dif) är lite av en anomali i Excel. En kompatibilitetsfunktion som ursprungligen kommer från Lotus 1-2-3, Excel hjälper inte till att tillhandahålla argument när funktionen är inmatad. DATEDIF fungerar dock i alla moderna versioner av Excel och är en användbar funktion för att beräkna intervallet mellan två datum i år, månader och dagar.

I exemplet som visas är målet att beräkna ålder i år. Formeln i E5 är:

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

De två första argumenten för DATEDIF är startdatum och slutdatum. Startdatumet kommer från cell D5 (15 maj 2001) i exemplet. Slutdatumet genereras med TODAY-funktionen. I DAG returnerar alltid det aktuella datumet i Excel. När detta skrivs är nuvarande datum den 24 november 2020. Det sista argumentet i DATEDIF anger tidsenheten. DATEDIF-funktionen stöder flera alternativ här, men för detta exempel är målet ålder i hela år, så vi använder "y" för att ange fullständiga år.

Vid den här tiden kan vi skriva om formeln enligt nedan:

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

Eftersom Excel-datum faktiskt är serienummer är råvärdena:

=DATEDIF(37026,44159,"y")

Med dessa ingångar returnerar DATEDIF 19 som slutresultat.

Ålder på specifikt datum

För att beräkna ålder på ett visst datum, ersätt TODAY-funktionen med måldatumet. Ett enkelt och säkert sätt att hårdkoda ett visst datum till en formel är att använda DATE-funktionen. Till exempel, för att beräkna ålder från och med 1 januari 2021 kan du använda en sådan formel:

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

Denna formel återvänder Michael Changs ålder den 1 januari 2022, vilket är 20 år.

Vuxen eller mindre

För att kontrollera ett födelsedatum och returnera "Mindre" eller "Vuxen" kan du slå in formeln i IF-funktionen så:

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

Ovanstående formel är ett exempel på häckning. Ersätt 18 med vilken ålder som helst.

Ålder i år, månader och dagar

För att beräkna ålder i år, månader och dagar, använd tre instanser av DATEDIF så här:

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

Den första instansen av DATEDIF returnerar år, den andra instansen returnerar månader och den tredje instansen returnerar dagar. Detta är ett exempel på sammanfogning, och resultatet är en textsträng så här:

19y 6m 9d

Observera start- och slutdatum förblir desamma i alla tre DATEDIF; endast enheten byts ut.

YEARFRAC med INT

Ett annat alternativ för att beräkna ålder från födelsedatum använder YEARFRAC-funktionen tillsammans med INT-funktionen i en sådan formel:

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

YEARFRAC beräknar ett decimaltal som representerar bråkdelen av ett år mellan två datum. För att räkna ut bråkdelen av ett år som ett decimalvärde använder Excel dagar mellan två datum. Som ovan tillhandahålls födelsedatumet som startdatum från cell D5, och dagens datum tillhandahålls som slutdatum, med tillstånd av TODAY-funktionen.

Med ett aktuellt datum den 24 november 2020 är resultatet från YEARFRAC för Michael Chang:

19.5290896646133

Därefter tar INT-funktionen över och avrundar det numret till helvärdet, vilket är siffran 19.

=INT(19.5290896646133) // returns 19

Denna formel verkar helt logisk och den fungerar bra i de flesta fall. YEARFRAC kan dock returnera ett nummer som inte stämmer på årsdagen (födelsedagar). Jag är inte säker på exakt varför detta händer, men det är relaterat till hur YEARFRAC använder dagar för att bestämma bråkår, vilket styrs av grundargumentet. Till exempel:

=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

Slutsatsen är att datum DATEDIF-formeln är ett säkrare och enklare alternativ när målet är att rapportera ålder i hela år.

Intressanta artiklar...