エクセルで、生年月日から今日の年齢を計算することができます。年齢計算は、DATEDIF関数を使って求めることもできますが、DATEDIF関数を使わずに、年齢を計算する方法があります。それには、YEAR、DATE、MONTH、DAY、IF関数を組み合わせて使います。日付の関数を使って、今日の日付から生年月日を差し引いて、今日の年齢を計算します。このようにしても、DATEDIF関数を使わずに、今日の年齢を計算できる、という方法を紹介しています。
目次
YEAR、DATE、MONTH、DAY、IF関数で生年月日から今日の年齢を計算
エクセル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」が返されます。
こちらの記事もご覧ください。⇒エクセルで年齢を基準日の時点で計算する方法!和暦の生年月日でも計算できる
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年を基準とした日付方式に設定しましょう。
こちらの記事もご覧ください。⇒エクセルで生年月日から今日の年齢を計算する方法