生年月日から今日の年齢を計算する!エクセルDATEDIF関数を使わない方法

エクセルで、生年月日から今日の年齢を計算することができます。年齢計算は、DATEDIF関数を使って求めることもできますが、DATEDIF関数を使わずに、年齢を計算する方法があります。それには、YEAR、DATE、MONTH、DAY、IF関数を組み合わせて使います。日付の関数を使って、今日の日付から生年月日を差し引いて、今日の年齢を計算します。このようにしても、DATEDIF関数を使わずに、今日の年齢を計算できる、という方法を紹介しています。

 

 

YEARDATEMONTHDAYIF関数で生年月日から今日の年齢を計算

エクセルDATEDIF 関数を使用しないで、生年月日から年齢を計算しましょう。

今日の日付を、「2018/1/7」とします。

C2に、今日の日付を、「2018/1/7」として、生年月日から今日の年齢を計算する式を入力します。

 

C2 =YEAR(TODAY())-YEAR(B2)+IF(TODAY()<DATE(YEAR(TODAY()),MONTH(B2),DAY(B2)),-1,0)

「25」が返されます。

年齢計算の基本は、歳の差を求める式「本日の年-誕生日の年」です。

=YEAR(TODAY())-YEAR(B2)

次に、「今日の日付」が、「今年の誕生日」を過ぎているかどうか、調べなくてはいけません。

B2の今年の誕生日は、「2018/8/10」です。

D2は、今日の日付「2018/1/7」です。

「B2」の、今年の誕生日「2018/8/10」が、「D2」の、今日の日付「2018/1/7」を、過ぎているか調べます。

今年の誕生日がまだきていなかったら、「-1」しなければいけません。

その式が、下の式になります。

IF(D2<DATE(YEAR(D2),MONTH(B2),DAY(B2)),-1,0)

上の式に、歳の差を求める式「本日の年-誕生日の年」を付け加えます。

=YEAR(TODAY())-YEAR(B2)+IF(D2<DATE(YEAR(D2),MONTH(B2),DAY(B2)),-1,0)

今日の日付「D2」を、TODAY()に置き換えると下の式になります。

=YEAR(TODAY())-YEAR(B2)+IF(TODAY()<DATE(YEAR(TODAY()),MONTH(B2),DAY(B2)),-1,0)

表を完成させましょう。

C2の式をドラッグして、下にコピーしましょう。

年齢が表示されました!

 

 

関数の説明

IF関数

IF関数は、エクセル関数の中で使用頻度が高い関数です。論理式が真の場合と偽の場合の、指定した値を返す関数です。

IF関数の書式と引数

IF(論理式,真の場合,偽の場合)

論理式 条件式を指定します。
真の場合 論理式がTRUEの場合に返す値を指定します。
偽の場合 論理式がFALSEの場合に返す値を指定します。省略するとFALSEを返します。

IF関数の使い方

 

C2に、「今月売上-前月売上」が「0」より大きかったら「↑」を、「0」以下だったら「↓」を返す式を入力します。

C2 =IF((B2-A2)>0,”↑”,”↓”)

「0」より大きいので、「↑」を返します。

C2の式をドラッグして、下にコピーしましょう。

>0の場合は「↑」、=<0の場合は「↓」が返されました!

 

 

TODAY関数

現在の日付をシリアル値を返す関数です。

TODAY関数の書式

TODAY()

TODAY関数の書式には引数はありません。

TODAY関数の使い方

今日の日付を、「2017/5/1」で説明しましょう。

数式 説明 結果 今日の日付
=TODAY() 現在の日付を返します。 2017/5/1 2017/5/1
=TODAY()+2 現在の日付から2日後の日付を返します。 2017/5/3  

 

DATE関数

DATE 関数は、指定された日付に対応するシリアル値を返す関数です。

DATE関数の書式と引数

DATE(,,)

1 〜 4桁で年を指定します。
月を表す数値を、1 〜 12の範囲で指定します。月に12より大きい月を指定すると、月の値を年に加算して日付が計算されます。負の整数を入力すると、年減算して日付が計算されます。
日を表す数値を、1 〜 月の最終日の範囲で指定します。指定した月の最終日よりも大きい整数を入力した場合は、日の値を月に加算して日付が計算されます。負の整数を入力した場合は、日の値を月から減算して日付が計算されます。日が1未満の場合は、日の日数に1を加えた数が、指定された月の最初の日から減算されます。  

DATE関数の使い方

数式 結果 説明
=DATE(1989,1,5) 1989/1/5 DATE関数の基本的な使い方です。
=DATE(1989,15,5) 1900/3/5 月が12より大きい場合は、指定された年の最初の月に、月の月数が加算されます。 次の数式では1989年3月5日という日付が返されます。
=DATE(1989,-2,2) 1988/10/2 の値が 1 未満の場合、DATE関数は指定された年の最初の月から、月数に 1 を加えた数を減算します。 次の数式では 1988年10月2日が返されます。
=DATE(1989,1,35) 1989/2/4 指定された月の日数より 日の値の方が大きい場合は、その月の最初の日付に、日の日数が加算されます。 次の数式では 1989年2月4日という日付が返されます。
=DATE(1989,1,-1) 1989/12/30 日が1未満の場合は、日の日数に1を加えた数が、指定された月の最初の日から減算されます。 次の数式では1989年12月 30日が返されます。

 

こちらの記事もご覧ください。⇒エクセルで年齢を基準日の時点で計算する方法!和暦の生年月日でも計算できる

 

MONTH関数

データに含まれる月をシリアル値で返します。戻り値は 1(月) ~ 12(月) の範囲の整数となります。

MONTH関数の書式と引数

MONTH(シリアル値)

シリアル値 検索する月の日付を指定します。日付は、DATE関数を使って入力するか、他の数式または他の関数の結果を指定します。

MONTH関数の使い方

 

C2に式を入力します。

C2 =MONTH(A1)

「5」が返されます。

こちらの記事もご覧ください。⇒エクセルIF関数とVLOOKUP関数で別シートを参照する方法

DAY関数

シリアル値で表される日を返す関数です。日付を表す 整数、1 ~ 31の数値で返します。

DAY関数の書式と引数

DAY(シリアル値)

シリアル値 必ず指定します。日付は、DATE関数を使って入力するか、他の数式または他の関数の結果を指定します。

DAY関数の使い方

 

B2に式を入力します。

B2 =DAY(“2005/3/15”)

「15」が返されます。

セル参照の式は、次のようになります。C2に入力します。

C2 =DAY(A2)

こちらの記事もご覧ください。⇒エクセルで生年月日から年齢を計算して年、月、日で表示する方法

今日の年齢を計算する場合の注意

エクセルで生年月日から年齢を計算する場合、注意しなければいけません。エクセルには、1900年を基準とした日付方式と、1904年を基準とした日付方式の2つの異なる日付方式があります。

Excelは、複数のブックを開いている場合でも、ブックごとに独自の日付方式を設定できます。ブックの日付方式を統一しないと、ブック間で違った結果になります。ブックの日付方式を統一しましょう。エクセルは日付方式の初期設定が1900年基準になっています。日付方式が1904年になっている場合は、1900年を基準とした日付方式に設定しましょう。

こちらの記事もご覧ください。⇒エクセルで生年月日から今日の年齢を計算する方法