Formuła programu Excel: Uzyskaj wiek od urodzin -

Spisie treści

Formuła ogólna

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

Podsumowanie

Aby obliczyć wiek na podstawie daty urodzenia, możesz użyć funkcji DATA.RÓŻNICA razem z funkcją DZIŚ. W przedstawionym przykładzie formuła w komórce E5 skopiowana w dół to:

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

Ponieważ DZIŚ zawsze zwraca bieżącą datę, formuła będzie nadal obliczać prawidłowy wiek w przyszłości.

Wyjaśnienie

Funkcja DATEDIF (Data + Róż) jest trochę anomalią w programie Excel. Funkcja zgodności, która pochodzi z Lotus 1-2-3, Excel nie pomoże w podawaniu argumentów, gdy funkcja jest wprowadzana. Jednak DATEDIF działa we wszystkich nowoczesnych wersjach programu Excel i jest użyteczną funkcją do obliczania odstępu czasu między dwiema datami w latach, miesiącach i dniach.

W przedstawionym przykładzie celem jest obliczenie wieku w latach. Wzór w E5 to:

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

Pierwsze dwa argumenty DATEDIF to data_początkowa i data_końcowa. Data początkowa pochodzi z komórki D5 (15 maja 2001) w przykładzie. Data zakończenia jest generowana za pomocą funkcji DZIŚ. DZIŚ zawsze zwraca bieżącą datę w programie Excel. W chwili pisania tego tekstu aktualna data to 24 listopada 2020 r. Ostatni argument w DATEDIF określa jednostkę czasu. Funkcja DATA.JEŻELI obsługuje tutaj kilka opcji, ale w tym przykładzie celem jest wiek wyrażony w pełnych latach, więc używamy „y” do określenia pełnych lat.

W tym momencie możemy przepisać formułę jak poniżej:

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

Ponieważ daty programu Excel są w rzeczywistości liczbami seryjnymi, nieprzetworzone wartości to:

=DATEDIF(37026,44159,"y")

Z tymi danymi wejściowymi DATEDIF zwraca 19 jako wynik końcowy.

Wiek w określonym dniu

Aby obliczyć wiek w określonym dniu, zamień funkcję DZIŚ na datę docelową. Łatwym i bezpiecznym sposobem na zakodowanie określonej daty w formule jest użycie funkcji DATA. Na przykład, aby obliczyć wiek na 1 stycznia 2021 r., Możesz użyć następującego wzoru:

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

Ta formuła przywróci wiek Michaela Changa 1 stycznia 2022 r., Czyli 20 lat.

Dorosły lub nieletni

Aby sprawdzić datę urodzenia i zwrócić „Małoletni” lub „Dorosły”, możesz umieścić formułę w funkcji JEŻELI w następujący sposób:

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

Powyższy wzór jest przykładem zagnieżdżenia. Zamień 18 lat na dowolny wiek.

Wiek w latach, miesiącach i dniach

Aby obliczyć wiek w latach, miesiącach i dniach, użyj trzech wystąpień DATEDIF w następujący sposób:

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

Pierwsze wystąpienie DATEDIF zwraca lata, drugie wystąpienie zwraca miesiące, a trzecie wystąpienie zwraca dni. To jest przykład konkatenacji, a wynikiem jest ciąg tekstowy podobny do tego:

19y 6m 9d

Uwaga: daty rozpoczęcia i zakończenia pozostają takie same we wszystkich trzech DATEDIF; zmienia się tylko jednostka.

YEARFRAC z INT

Inna opcja obliczania wieku od daty urodzenia wykorzystuje funkcję YEARFRAC razem z funkcją INT w formule takiej jak ta:

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

YEARFRAC oblicza liczbę dziesiętną reprezentującą ułamek roku między dwiema datami. Aby obliczyć ułamek roku jako wartość dziesiętną, Excel używa dni między dwiema datami. Jak powyżej, data urodzenia jest podawana jako data_początkowa z komórki D5, a data dzisiejsza jest podawana jako data końcowa dzięki funkcji DZIŚ.

Z aktualną datą 24 listopada 2020 r.wynik z YEARFRAC dla Michaela Changa to:

19.5290896646133

Następnie funkcja INT przejmuje i zaokrągla tę liczbę do wartości całkowitej, która jest liczbą 19.

=INT(19.5290896646133) // returns 19

Ta formuła wydaje się idealnie logiczna i działa dobrze w większości przypadków. Jednak YEARFRAC może zwrócić liczbę, która jest nieprawidłowa w przypadku dat rocznic (urodzin). Nie jestem pewien, dlaczego tak się dzieje, ale jest to związane ze sposobem, w jaki YEARFRAC wykorzystuje dni do określenia ułamków lat, co jest kontrolowane przez argument podstawowy. Na przykład:

=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

Najważniejsze jest to, że formuła daty DATEDIF jest bezpieczniejszą i łatwiejszą opcją, gdy celem jest podanie wieku w pełnych latach.

Interesujące artykuły...