生年月日と現在の日付または指定日から年齢を計算する方法

2016/12/07

Excel 上で生年月日から年齢を求める方法について今回は説明します。

日付の引き算で算出するのが一番簡単そうなのですが、実は日付の差分計算では、正確な年齢が計算できないのです。今回はその理由も含め、年齢を計算する方法を紹介します。

生年月日から引き算で年齢を計算する

Excel で現在日付は today() で求められます。セル上に指定する場合は「=TODAY()」と入力すれば、現在日付が表示されます。ファイルを開く日付が変われば、表示される日付も変わります。

calculate-age-from-date-of-birth01

では実際に today() 関数を利用して、生年月日を求めます。一見「today() – 生年月日」で年齢を算出することができそうですが、「today() – 生年月日」では正確な年齢を算出することができません。下の例をご覧ください。

calculate-age-from-date-of-birth02

Excel の日付は、1900/1/1 を起点としているので、差分の計算結果が 1年の場合は 1901 年となるので、上記のような計算結果になります。このままでは年齢として認識できないので、表示形式を変更して年齢表示となるようにします。計算式を入力した C列のセルを右クリックして [セルの書式設定(F)] を選択します。

セルの書式設定ウィンドウが表示されるので、[表示形式] タブの分類(C) [ユーザー定義] を選択し、種類(T) に「yy」と直接入力します。そうすることで、年の下二桁が表示されるようになります。

calculate-age-from-date-of-birth03

本日の日付「2015/9/1」の場合、4行目のエクセル花子さんの計算結果は「13」とならなくてはいけませんが、12歳のままです。同じ日付同士で引き算をしているので、1日ずれているのなら分かるのですが、2つ前の画像を見ると「1912/12/30」となっていて、2日もずれている状態となっています。

また計算結果が 100歳を超える場合は、5行目のエクセル歳三さんのように「05」と表示され、3桁表記することが出来ません。

2000年を境に日付の引き算のずれる日数が違う

2000年以前の日付であれば、1日しかずれませんが、2000年以降は何故か 2日もずれてしまう事象が起こってしまいます。(この件に関する理由は不明です。)

日付同士の引き算をする時は、計算値のズレが生じるので、利用する場合は注意するようにしましょう。

では、実際に年齢を算出するにはどうしたら良いのでしょうか?

日付の差分を計算する DATEDIF 関数を利用して年齢を求める

今回紹介する DATEDIF 関数は、Lotus 1-2-3 関数との互換性を保つために用意されている関数で、関数ウィザードやヘルプにも表示されない特別な関数です。この関数を利用するには、直接セルへ入力しなくてはいけません。

DATEDIF 関数書式

DATEDIF( 開始日, 終了日, 単位 )

単位戻り値
“Y”期間内の満年数
“M”期間内の満月数
“D”期間内の満日数
“MD”開始日から終了日までの日数。この場合、月と年は考慮されません。
“YM”開始日から終了日までの月数。この場合、日と年は考慮されません。
“YD”開始日から終了日までの日数。この場合、年は考慮されません。

DATEDIF 関数を利用して実際に年齢を求める

DATEDIF() 関数を用いて「単位」に “Y” を設定すれば、年齢を求めることができます。実際に関数を仕掛け直したものをご覧ください。

calculate-age-from-date-of-birth04
※ 書式の [表示形式] は [標準] に戻しています。

開始日に B列の日付、終了日に TODAY() 関数を指定します。引き算で正確に計算できなかった誕生日当日である 4行目のエクセル花子さんも、100歳を超える 5行目のエクセル歳三さんもきちんと計算することができました。

現在日付から指定日へ変更して年齢を計算する

today() 関数を設定している部分を別の日付情報に変更すれば、指定日に対する年齢を計算出来るようになります。次の例では、別のセルに日付を入力し、そのセル値を基準日として計算した場合を示します。

calculate-age-from-date-of-birth05

計算基準日を B7 セルの日付を参照するようにし、基準日に対する年齢を計算するようにしました。この B7 セルに「=TODAY()」と入力すれば、前述の現在日付に対する年齢となります。

以上、生年月日から年齢を求める方法でした。

Name :
パソコンを使う上で、Excelは様々な用途で用いられますが、その分困ることもたくさんあります。
困った時に少しでも役立てるようにと、このサイトを立ち上げました。分かりやすくをモットーに解説をしていくつもりですので、どうぞよろしくお願いします。
尚、このサイトでの説明は、主に Excel2013 を利用していますので、その点につきましてはご了承いただければと思います。

Excel のフィルタ機能で空白セルがある途中までしかフィルタ出来ない場合の対処法
2016/01/12

Excel のフィルタ機能で空白セルがある途中までしかフィルタ出来ない場合の対処法

Excel 関数を用いて数値から整数部分と小数部分を抜き出す方法
2015/10/04

Excel 関数を用いて数値から整数部分と小数部分を抜き出す方法

使う分だけ覚えよう!Excel ショートカット一覧
2015/09/02

使う分だけ覚えよう!Excel ショートカット一覧

生年月日と現在の日付または指定日から年齢を計算する方法
2015/09/01

生年月日と現在の日付または指定日から年齢を計算する方法

文字列全体に対して複数の置換を行いたいなら REPLACE ではなく SUBSTITUTE 関数を使おう
2015/07/19

文字列全体に対して複数の置換を行いたいなら REPLACE ではなく SUBSTITUTE 関数を使おう

列を再表示するショートカットキー Ctrl + Shift + 0 が機能しない場合の対処法
2015/06/15

列を再表示するショートカットキー Ctrl + Shift + 0 が機能しない場合の対処法

セルにレ点を入力する方法
2015/04/27

セルにレ点を入力する方法

複数の列に一致する条件で行数をcountする方法 AND編
2015/04/24

複数の列に一致する条件で行数をcountする方法 AND編

セルに入力した文字数を数える方法
2015/04/21

セルに入力した文字数を数える方法

SEだったら絶対に覚えておくべき5つの Excel ショートカットキー
2015/04/21

SEだったら絶対に覚えておくべき5つの Excel ショートカットキー

→もっと見る

PAGE TOP ↑