当サイトはアフィリエイト広告を利用しています。
社員名簿を作成するときや航空券を予約するときは年齢が必要になりますが、自分以外の人の年齢って咄嗟に出てこないですよね。
そこで今回は、Excelで西暦や和暦の生年月日から年齢を計算する方法をご紹介します。
西暦でも和暦でも、生年月日さえわかっていれば簡単に年齢を計算できます。現時点(今日)での年齢だけでなく、指定日時点での年齢も出せますよ♪
Excelで2つの日付から年数を計算する方法
Excelで2つの日付から年数を計算したいときは、「DATEDIF関数」を使います。
DATEDIF関数(デイトディフ関数)は、指定された方法で期間を求める関数です。
DATEDIF(開始日, 終了日, 単位)
- (必須)
- 期間の始点となる日付を指定する。
- (必須)
- 期間の終点となる日付を指定する。
- (必須)
- 期間の表し方を指定する。
- “Y”:期間を「満年数」で表す。
- “M”:期間を「満月数」で表す。
- “D”:期間を「満日数」で表す。
- “MD”:期間を「年と月を無視した日数」で表す。
(例)2000/4/1 –2001/5/15 → 1 – 15 = 14 - “YM”:期間を「年と日を無視した月数」で表す。終了日の日数が開始日の日数を下回る場合は不正確な結果となる。
(例)2000/4/1–2001/5/15→ 4 – 5 = 1 - “YD”:期間を「年を無視した日数」で表す。
(例)2000/4/1 –2001/5/15 → 4/1 – 5/15 = 44
DATEDIF関数で年齢を求めるためには、第1引数に「生年月日」を、第2引数に「基準日(どの時点での年齢を知りたいか)」を、第3引数に「“Y”」を指定します。
Excelで西暦や和暦の生年月日から年齢を計算する方法
それでは、DATEDIF関数を使って西暦や和暦の生年月日から年齢を計算してみましょう。
「西暦」の生年月日から「今日」の年齢を計算する方法
B2以降に生年月日が「西暦」で入力されていて、C2以降に「今日」の年齢を表示したい場合は、まずC2に=DATEDIF(B2,TODAY(),"Y")
という数式を入力します。
TODAY()
は「今日」を表す関数ですので、この数式の意味は「B2の日付から今日までの満年数」となります。
あとは任意のセルまで数式をオートフィルすればOKです。
「和暦」の生年月日から「今日」の年齢を計算する方法
生年月日が「昭和XX年XX月XX日」や「SXX.XX.XX」のように「和暦」で入力されている場合もやり方は同じです。セルをクリックしてみるとわかりますが、和暦で日付を入力しても自動で西暦の日付に変換されるので、和暦だからと言って特殊なやり方をする必要はありません。
これから生年月日を入力する場合で、見た目を西暦ではなく和暦にしたいときは、生年月日のセルの表示形式を変更します。
生年月日を入力したセル範囲を選択して右クリック⇒「セルの書式設定」をクリックします。
「表示形式」タブ⇒「日付」⇒「カレンダーの種類」から「和暦」を選択します。
「種類」からどちらか一方を選択し、「OK」をクリックします。これで、見た目は和暦になります。
基準日を「今日」以外にする場合
「今日」の年齢を求めたい場合は、終了日にTODAY()
を指定すればいいですが、現在ではなく、過去や未来の時点での年齢が知りたいときもありますよね。
その場合は、空いているセルに基準日を入力し、終了日にそのセルのセル番地を指定します。基準日をB1に入力している場合は、=DATEDIF(B4,B$1,"Y")
という数式になります。
あとは数式を任意のセルまでオートフィルすればOKです。
mono
このやり方なら基準日を変えたくなったときに数式を修正しなくて済むので楽ですね。
基準日セルの行番号に「$」をつけているのは、数式をコピーしたときに行がずれないようにするためです。行番号や列番号の前に「$」をつけることで相対参照から絶対参照になり、数式をコピーしても列や行が横にずれなくなります。
Excelで年齢を「○歳○ヶ月」の形で求める方法
「○歳」の形ではなく、「○歳○ヶ月」の形で求めたい場合は、数式を=DATEDIF(B4,B$1,"Y")&"歳"&DATEDIF(B4,B$1,"YM")&"ヶ月"
のように変更します。
「○ヶ月」の部分は「1年に満たない月数」なので、2つ目のDATEDIF関数の第3引数に「“YM”」を指定しています。
このような数式を入力すると、以下のように年齢が「○歳○ヶ月」の形で表示されます。
Excelで満年齢から数え年を計算する方法
一般的に「年齢」と言うと「満年齢」を指しますが、故人の亡くなった年齢(享年)などは「数え年」がよく用いられます。
数え年は満年齢の数え方とはちょっと違うので、先程までのやり方では求められません。数え年を求めたい場合は、=IF(B$1>=DATE(YEAR(B$1),MONTH(B4),DAY(B4)),C4+1,C4+2)
のような数式を使いましょう。
この数式の意味は、「基準日がその年の誕生日を過ぎていたら満年齢+1、過ぎていなかったら満年齢+2」です。
このような数式を入力すると、以下のように数え年が表示されます。
なぜ誕生日の前後で満年齢にプラスする数字が変わるのかと言うと、満年齢が「生まれた日を0歳とし、誕生日に年をとる」という数え方なのに対し、数え年は「生まれた日を1歳とし、正月(1月1日)に年をとる」という数え方だからです。
たとえば「1990年12月31日」生まれの子の「1991年」の数え年は「2歳」ですが、満年齢は「1991年12月30日」時点で「0歳」、「1991年12月31日」時点で「1歳」です。
なので、基準日とする年の誕生日前であれば満年齢+2、誕生日後であれば満年齢+1する必要があるのです。
まとめ
今回は、Excelで西暦や和暦の生年月日から年齢を計算する方法をご紹介しました。
生年月日から年齢を計算したいときは、DATEDIF関数を使いましょう。
DATEDIF関数を使えば、開始日から終了日までの期間を年数や月数などで求めることができます。年齢だけでなく勤続年数を計算したいときにも使えるので便利ですよ。