[Excel 2016/2013/2010]
DATEDIF関数を使用すると、生年月日から年齢を計算できます。引数に生年月日と今日の日付を指定して、今日現在の年齢を簡単に求められます。
作例…生年月日から年齢を求める
図1では、生年月日をもとに年齢を求めています。DATEDIF関数の引数[開始日]に「生年月日」のセルB3を、引数[終了日]に今日の日付を求めるTODAY関数を、引数[単位]に「年」を意味する「”Y"」を指定すると、生年月日から今日までの期間の年数を求められます。
[開始日]から[終了日]までの期間を、指定した「単位」で求める
=DATEDIF(開始日, 終了日, 単位)
セルC3 | =DATEDIF(B3,TODAY(),"Y")
メモ
図1では年齢の一般的な考え方に基づいて、生年月日に1歳年が上がるものとして年齢を計算しています。
しかし、法律では誕生日の前日に年齢が1加算されるそうです。4月1日生まれの人が学年上早生まれ扱いになるのは、誕生日前日の3月31日に年をとるからなのですね。法律上の年齢を求めるときは、今日の日付に1を加算します。
=DATEDIF(B3,TODAY()+1,"Y")
関数解説…DATEDIF関数
書式
=DATEDIF(開始日, 終了日, 単位)
[開始日]から[終了日]までの期間を、指定した[単位]で求めます。年数を求めたいときは、[単位]に「"Y"」を指定します。
■引数
引数 | 指定 | 説明 |
---|---|---|
開始日 | 必須 | 開始日を指定 |
終了日 | 必須 | 終了日を指定。 |
単位 | 必須 | 求める期間の単位を次表の値で指定。 |
■表A 引数[単位]の設定値
設定値 | 説明 |
---|---|
"Y" | 満年数を求める。期間が「1年2カ月3日」の場合の結果は「1」 |
"M" | 満月数を求める。期間が「1年2カ月3日」の場合の結果は「14」 |
"D" | 満日数を求める。「終了日-開始日」が求められる |
"YM" | 1年未満の月数を求める。期間が「1年2カ月3日」の場合の結果は「2」 |
"YD" | 1年未満の日数を求める。期間が「1年2カ月3日」の場合の結果は「2カ月3日」の日数 |
"MD" | 1カ月未満の日数を求める。期間が「1年2カ月3日」の場合の結果は「3」 |
※「"YD"」「"MD"」については、このページ下のほうに記載した注意事項も参考にしてください。
メモ
DATEDIF関数は、もともとLotus 1-2-3という表計算ソフトの関数です。その昔、シェアNo.1だったLotus 1-2-3と互換性を持たせるために、ExcelにもDATEDIF関数が用意されました。
DATEDIF関数はExcelの正式な関数ではないため、リボンの[数式]タブの[日付/時刻]ボタンの一覧には表示されません。[関数の挿入]ダイアログボックスや数式オートコンプリートの一覧にも表示されません。入力するときは、手入力してください。
使用例
数式 | 結果 | 説明 |
---|---|---|
=DATEDIF("2017/4/1","2018/6/4","Y") | 1 | 「2017/4/1」から「2018/6/4」までは1年 |
=DATEDIF("2017/4/1","2018/6/4","M") | 14 | 「2017/4/1」から「2018/6/4」までは14カ月 |
=DATEDIF("2017/4/1","2018/6/4","D") | 429 | 「2017/4/1」から「2018/6/4」までは429日 |
=DATEDIF("2017/4/1","2018/6/4","YM") | 2 | 「2017/4/1」から「2018/6/4」まで、「1年」を引いた余りは2カ月 |
=DATEDIF("2017/4/1","2018/6/4","YD") | 64 | 「2017/4/1」から「2018/6/4」まで、「1年」を引いた余りは64日 |
=DATEDIF("2017/4/1","2018/6/4","MD") | 3 | 「2017/4/1」から「2018/6/4」まで、「14カ月」を引いた余りは3日 |
注意