Excel

誕生日から年齢を取得する

Get Age From Birthday

Excelの数式:誕生日から年齢を取得する一般式
= DATEDIF (birthdate, TODAY (),'y')
概要

誕生日から年齢を計算するには、 DATEDIF関数 と一緒に TODAY機能 。示されている例では、コピーされたセルE5の数式は次のとおりです。



セルが空かどうかのExcelテスト
 
= DATEDIF (D5, TODAY (),'y')

TODAYは常に現在の日付を返すため、数式は今後も正しい年齢を計算し続けます。

説明

NS DATEDIF関数 (Date + Dif)はExcelのちょっとした異常です。もともとLotus1-2-3に由来する互換性関数であるExcelは、関数が入力されたときに引数を提供するのに役立ちません。ただし、DATEDIFはすべての最新バージョンのExcelで機能し、年、月、日の2つの日付間の間隔を計算するための便利な関数です。





示されている例では、目標は年齢を年単位で計算することです。 E5の式は次のとおりです。

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

DATEDIFの最初の2つの引数は、start_dateとend_dateです。開始日は、例のセルD5(2001年5月15日)から取得されます。終了日はTODAY関数で生成されます。 TODAYは、常に現在の日付をExcelで返します。この記事の執筆時点では、現在の日付は2020年11月24日です。DATEDIFの最後の引数は時間単位を指定します。 DATEDIF関数 ここでいくつかのオプションをサポートします 、ただし、この例では、目標は全年の年齢であるため、「y」を使用して完全な年を指定します。



この時点で、式を次のように書き直すことができます。

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

なぜなら Excelの日付は実際にはシリアル番号です 、生の値は次のとおりです。

 
= DATEDIF (37026,44159,'y')

これらの入力を使用すると、DATEDIFは最終結果として19を返します。

特定の日付の年齢

特定の日付の年齢を計算するには、TODAY関数を目標の日付に置き換えます。特定の日付を数式にハードコードする簡単で安全な方法は、 DATE関数 。たとえば、2021年1月1日の年齢を計算するには、次のような式を使用できます。

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

この数式は、2022年1月1日のマイケルチャンの年齢である20を返します。

成人または未成年者

誕生日を確認して「マイナー」または「アダルト」を返すには、数式を次のようにラップします。 IF関数 そのようです:

別のセルに基づくデータ検証
 
= IF ( DATEDIF (D5, TODAY (),'y')<18,'Minor','Adult')

上記の式はの例です ネスティング 。 18を適切な年齢に置き換えます。

年、月、日での年齢

年、月、日で年齢を計算するには、次のようにDATEDIFの3つのインスタンスを使用します。

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

DATEDIFの最初のインスタンスは年を返し、2番目のインスタンスは月を返し、3番目のインスタンスは日を返します。これはの例です 連結 、結果は テキスト文字列 このような:

 
19y 6m 9d

開始日と終了日は、3つのDATEDIFのすべてで同じままであり、単位のみが変更されることに注意してください。

YEARFRAC witn INT

誕生日から年齢を計算するための別のオプションは、 YEARFRAC機能 次のような式のINT関数と一緒に:

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

YEARFRACは、2つの日付の間の1年の端数を表す10進数を計算します。 1年の小数部を小数値として計算するために、Excelは2つの日付の間の日を使用します。上記のように、誕生日はセルD5からstart_dateとして提供され、今日の日付はTODAY関数のおかげでend_dateとして提供されます。

現在の日付は2020年11月24日で、MichaelChangのYEARFRACの結果は次のとおりです。

ユーザーフォームをExcelに挿入する方法
 
19.5290896646133

次に、 INT関数 が引き継いで、その数値を整数値(数値19)に切り捨てます。

 
= INT (19.5290896646133) // returns 19

この式は完全に論理的に見え、ほとんどの場合正常に機能します。ただし、YEARFRACは、記念日(誕生日)に正しくない数値を返す場合があります。これが発生する理由は正確にはわかりませんが、YEARFRACが日数を使用して小数年を決定する方法に関連しています。 基本的な議論 。例えば:

 
= 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

肝心なのは、目標が年間の年齢を報告することである場合、日付DATEDIF式がより安全で簡単なオプションであるということです。

添付ファイル ファイル birthdate.xlsxから年齢を取得します 著者デイブブランズ


^