Excel vzorec: Získejte věk od narozenin -

Obsah

Obecný vzorec

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

souhrn

Chcete-li vypočítat věk od data narození, můžete použít funkci DATEDIF společně s funkcí DNES. V zobrazeném příkladu je vzorec v buňce E5 zkopírovaný dolů:

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

Protože DNES vždy vrátí aktuální datum, bude vzorec v budoucnu pokračovat ve výpočtu správného věku.

Vysvětlení

Funkce DATEDIF (Date + Dif) je v aplikaci Excel trochu anomálie. Funkce kompatibility, která pochází původně z Lotus 1-2-3, Excel při zadávání funkce nepomůže. DATEDIF však funguje ve všech moderních verzích aplikace Excel a je užitečnou funkcí pro výpočet intervalu mezi dvěma daty v letech, měsících a dnech.

V zobrazeném příkladu je cílem vypočítat věk v letech. Vzorec v E5 je:

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

První dva argumenty pro DATEDIF jsou start_date a end_date. Datum zahájení pochází z buňky D5 (15. května 2001) v příkladu. Datum ukončení je generováno funkcí DNES. DNES vždy vrátí aktuální datum v aplikaci Excel. V době psaní tohoto článku je aktuální datum 24. listopadu 2020. Poslední argument v DATEDIF určuje časovou jednotku. Funkce DATEDIF zde podporuje několik možností, ale v tomto příkladu je cílem věk v celých letech, takže k určení celých let používáme „y“.

V tomto okamžiku můžeme přepsat vzorec níže:

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

Protože data aplikace Excel jsou ve skutečnosti sériová čísla, hrubé hodnoty jsou:

=DATEDIF(37026,44159,"y")

S těmito vstupy vrátí DATEDIF 19 jako konečný výsledek.

Věk k určitému datu

Chcete-li vypočítat věk k určitému datu, nahraďte funkci DNES cílovým datem. Snadný a bezpečný způsob, jak napevno naprogramovat konkrétní datum do vzorce, je použití funkce DATUM. Například k výpočtu věku k 1. lednu 2021 můžete použít vzorec takto:

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

Tento vzorec vrátí věk Michaela Changa 1. ledna 2022, což je 20.

Dospělý nebo nezletilý

Chcete-li zkontrolovat datum narození a vrátit „Minor“ nebo „Adult“, můžete zabalit vzorec do funkce IF takto:

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

Výše uvedený vzorec je příkladem vnoření. Vyměňte 18 za jakýkoli vhodný věk.

Věk v letech, měsících a dnech

Chcete-li vypočítat věk v letech, měsících a dnech, použijte tři instance DATEDIF takto:

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

První instance DATEDIF vrací roky, druhá instance vrací měsíce a třetí instance vrací dny. Toto je příklad zřetězení a výsledkem je textový řetězec, jako je tento:

19y 6m 9d

Poznámka: počáteční a koncová data zůstávají stejná ve všech třech DATEDIFech; změněna je pouze jednotka.

YEARFRAC s INT

Další možností pro výpočet věku od data narození je funkce YEARFRAC společně s funkcí INT ve vzorci, jako je tento:

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

YEARFRAC vypočítá desetinné číslo představující zlomek roku mezi dvěma daty. K výpočtu zlomku roku jako desítkové hodnoty používá Excel dny mezi dvěma daty. Jak je uvedeno výše, datum narození je poskytnuto jako počáteční datum z buňky D5 a dnešní datum je poskytnuto jako end_date, s laskavým svolením funkce DNES.

S aktuálním datem 24. listopadu 2020 je výsledek z YEARFRAC pro Michaela Changa:

19.5290896646133

Dále funkce INT převezme toto číslo a zaokrouhlí jej na celočíselnou hodnotu, což je číslo 19.

=INT(19.5290896646133) // returns 19

Tento vzorec vypadá naprosto logicky a ve většině případů funguje dobře. YEARFRAC však může vrátit číslo, které není správné v den výročí (narozeniny). Nejsem si úplně jistý, proč se to stane, ale souvisí to s tím, jak YEARFRAC používá dny k určení zlomkových let, které jsou řízeny základním argumentem. Napří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ávěrem je, že vzorec data DATEDIF je bezpečnější a snadnější volbou, pokud je cílem hlásit věk v celých letech.

Zajímavé články...