Home » Excel(エクセル)の関数・数式の使い方 » 日付の処理・計算 » DATEDIF関数を使わずに年齢を計算する

DATEDIF関数を使わずに年齢を計算する

対象:Excel2003, Excel2007, Excel2010, Excel2013

DATEDIF関数を使わずに年齢を計算する

Microsoft Worksの技術サポートページに、生年月日から今日の年齢を計算する数式が掲載されています。

Excelで年齢を計算するにはDATEDIF関数を使うのが有名な方法ですが、このWorksの技術サポートページではDATEDIF関数を使わずに年齢を計算する方法が掲載されています。

[スポンサードリンク]

DATEDIF関数を使わないで年齢計算を行う数式

Works用の記事ではありますが、Excelでもそのまま使え、考え方が広く応用の効くものですので、補足を入れてご紹介しておきます。
▼操作方法:年齢計算を行う
※A1セルに今日の日付、B1セルに生年月日が入力されているときに、今日の年齢を計算する例
「=YEAR(A1) - YEAR(B1)
 - IF(MONTH(A1)*100 + DAY(A1) >= MONTH(B1)*100 + DAY(B1),
   0, 1)」
という計算式を入力する

YEAR・MONTH・DAY関数とIF関数を組み合わせて、年齢計算を行っている数式です。

DATEDIF関数を使わないで年齢計算を行う数式の解説

年齢計算の基本は、現在の西暦年から生まれた年の西暦年の引き算です。

それが
「YEAR(A1)-YEAR(B1)」
の部分です。

ポイントは、誕生日を過ぎているかどうかです。

誕生日を既に過ぎているときは
「YEAR(A1)-YEAR(B1)」
でOKですが、誕生日より前の日付なら
「YEAR(A1)-YEAR(B1)」から「1」を引き算しなければなりません。

この計算をしているのが
「- IF(MONTH(A1)*100 + DAY(A1) >= MONTH(B1)*100 + DAY(B1), 0, 1)
の部分です。

誕生日を過ぎているかどうかを判定するのに、月と日にちを確認する必要があります。

それを一つの比較演算で行うために、月のほうを100倍(MONTH(A1)*100・MONTH(B1)*100)しておいて、そこに日付(DAY(A1)・DAY(B1))を足し算したものを比較しています。

この考え方は、日付関連の計算でいろいろと応用が効きそうです。

誕生日の前日に年齢を加算する場合の数式

誕生日の前日に年齢を加算する必要がある場合は、以下のような数式です。
▼操作方法:誕生日の前日に加算される年齢計算を行う
※A1セルに今日の日付、B1セルに生年月日が入力されているときに、今日の年齢を誕生日の前日に加算される方法で計算する例
「=YEAR(A1) - YEAR(B1)
 - IF(MONTH(A1)*100 + DAY(A1) + 1 >= MONTH(B1)*100 + DAY(B1), 0, 1)」
という計算式を入力する

▼サンプルファイル(28KByte)ダウンロード

サンプルファイルのC1:C2セルに上記の2つの例を作成してあります。

数式を少しでも読みやすくするために、改行を入れてありますので、2007以降のExcelをお使いの方で、数式が全部表示されないという方は、数式バーを広げてご確認ください。

関連語句
経過日数, 経過年数, 在籍期間計算, 勤続年数計算, 勤続年数を計算したい, 年齢を求める, 年齢の関数, 生年月日からの関数, 勤務年数, 勤務の年数, 日付から日付までの年数, 年数計算

[スポンサードリンク]

Home » Excel(エクセル)の関数・数式の使い方 » 日付の処理・計算 » DATEDIF関数を使わずに年齢を計算する

「日付の処理・計算」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.
.