
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.