エクセルで年齢・勤続年数・日数を求める方法|DATEDIF・TODAY

エクセルで年齢・勤続年数・日数を求める方法|DATEDIF・TODAY

エクセルで、生年月日から年齢を求めるには、DATEDIF関数を使います。=DATEDIF(B3,H2,"Y") で、生年月日(B3)から、基準日(H2)までの、満年齢が求められます。今日の年齢を、自動で求めるなら、基準日に TODAY関数を指定します。勤続年数や、経過日数も、同じ考え方で求められます。

この記事では、満年齢の求め方、「○歳○か月」の表示、勤続年数・月数、日数の計算、次の誕生日までの日数、DATEDIF関数の注意点を、1つの表を使って説明します。下の練習ツールで、基準日や生年月日を書き換えて、結果の変わり方を試せます。

目次

年齢・期間の計算|やりたいこと別の式

やりたいこと式(例)ポイント
満年齢を求める=DATEDIF(B3,$H$2,”Y”)第3引数「Y」で、満年数が求まります。
今日の年齢を求める=DATEDIF(B3,TODAY(),”Y”)開くたびに、今日の年齢になります。
「○歳○か月」で表示する=DATEDIF(B3,$H$2,”Y”)&”歳”&DATEDIF(B3,$H$2,”YM”)&”か月”「YM」で、1年に満たない月数を求めます。
何か月経ったか=DATEDIF(H3,H2,”M”)「M」で、満月数が求まります。
何日経ったか=H2-H3日付どうしの、引き算で求まります。
次の誕生日までの日数=DATE(…)-H2次の誕生日の日付を作って、基準日を引きます。
ポイントポイント:DATEDIF関数は、「開始日」「終了日」「単位」の3つを指定します。開始日は、終了日より、前の日付にします。逆にすると、「#NUM!」になります。単位の「Y」は年、「M」は月、「D」は日、「YM」は月(年を除く)、「MD」は日(年と月を除く)です。

まず動かしてみよう|この記事のサンプルをその場で試せます

練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。

満年齢を求める(DATEDIF関数)

生年月日(B3)から、基準日(H2)時点の満年齢を、C3セルに求めます。

1
結果を出したいセル(C3)を選びます。
2
「=DATEDIF(」と入力します。
3
生年月日のセル(B3)をクリックして、「,」を入力します。
4
基準日のセル(H2)をクリックして、「,」を入力します(コピーしても、ずれないように、「$H$2」と固定します)。
5
「”Y”)」と入力して、Enter キーを押します。
DATEDIF関数の式
数式=DATEDIF(B3,$H$2,"Y")
ひとことで2つの日付の期間を求める
B3
開始日です
$H$2
終了日です
"Y"
単位です
エクセルで年齢を求めた表(名前、生年月日、満年齢、年齢と月、生きた日数、基準日、入社日、各式の結果)
エクセルで年齢を求めた表(名前、生年月日、満年齢、年齢と月、生きた日数、基準日、入社日、各式の結果)

梅は、1990/5/15生まれで、基準日の2026/10/11には、まだ、36歳なので、結果は 36 です。竹は、2010/10/11生まれで、基準日が、ちょうど誕生日なので、16 になります。楓は、1975/10/12生まれで、誕生日の前日なので、まだ 50 です。詳しくは、生年月日から年齢を計算する方法、DATEDIF関数の使い方を参照してください。

今日の年齢を、自動で求める(TODAY関数)

基準日に、TODAY関数を指定すると、ファイルを開くたびに、その日の年齢に、更新されます。名簿や、会員表で便利です。

DATEDIF関数の式
数式=DATEDIF(B3,TODAY(),"Y")
ひとことで2つの日付の期間を求める
B3
開始日です
TODAY()
終了日です
"Y"
単位です

練習用の表では、結果が変わらないように、基準日を、2026/10/11に固定しています。固定した日付の時点の年齢(たとえば、4月1日時点)を求めるときも、基準日のセルを使います。TODAY関数の詳しい使い方は、TODAY関数・NOW関数の使い方を参照してください。

「○歳○か月」・「○年○か月○日」で表示する

年齢と、1年に満たない月数を、続けて表示するには、DATEDIF関数を2回使って、「&」でつなぎます。第3引数の「YM」は、年を除いた、月数です。

=DATEDIF(B3,$H$2,"Y")&"歳"&DATEDIF(B3,$H$2,"YM")&"か月"

梅は、36歳と、4か月なので、結果は 36歳4か月 です。勤続年数も、同じ形で、「○年○か月○日」と表示できます。2020/4/1に入社した人の、基準日までの勤続は、次の式で、結果は 6年6か月10日 です。

=DATEDIF(H3,H2,"Y")&"年"&DATEDIF(H3,H2,"YM")&"か月"&DATEDIF(H3,H2,"MD")&"日"

勤続年数・月数・日数を求める

入社日(H3)から、基準日(H2)までの、満年数は、「Y」を指定します。結果は 6 年です。

DATEDIF関数の式
数式=DATEDIF(H3,H2,"Y")
ひとことで2つの日付の期間を求める
H3
開始日です
H2
終了日です
"Y"
単位です

満月数は、「M」を指定します。6年6か月は、結果が 78 か月です。

DATEDIF関数の式
数式=DATEDIF(H3,H2,"M")
ひとことで2つの日付の期間を求める
H3
開始日です
H2
終了日です
"M"
単位です

経過日数は、日付どうしを、引き算するだけです。結果は 2384 日です。セルの表示形式が、日付になっているときは、「標準」に直します。詳しくは、経過日数を求める方法を参照してください。

=H2-H3

次の誕生日までの日数を求める

次の誕生日までの日数は、基準日を過ぎたかどうかで、年を足して、作ります。梅(5/15生まれ)は、今年の5/15が、基準日より前なので、来年の5/15を、次の誕生日にします。

=DATE(YEAR(H2)+(DATE(YEAR(H2),MONTH(B3),DAY(B3))<H2),MONTH(B3),DAY(B3))-H2

今年の誕生日が、基準日より前なら、「+1」で来年にして、日付を作り、基準日を引きます。結果は 216 日です。「(…)

年齢・期間の計算がうまくいかないときの確認表

症状考えられる原因対処
「#NUM!」になる開始日が、終了日より後になっている開始日と終了日の、順番を入れ替える。
「#VALUE!」になる日付が、文字になっている日付を、数値(シリアル値)として入力し直す。
日数が、日付の表示になるセルの表示形式が「日付」表示形式を「標準」にする。
年齢が、1つずれる誕生日の前日・当日を、考えていない基準日と、誕生日の日付を、確認する。DATEDIFは、誕生日の当日に、1つ増える。
2月29日生まれの年齢が合わないうるう年の誕生日平年は、3/1に1つ増える。基準日で、確認する。
「MD」の結果が、おかしいDATEDIF関数の「MD」には、既知の不具合がある日数は、日付の引き算で、求める。
値を変えても、結果が変わらない計算方法が「手動」になっている「数式」タブの「計算方法の設定」を「自動」にする。

年齢・期間の計算のよくある質問

生年月日から、年齢を求める式は?

=DATEDIF(生年月日,TODAY(),"Y") です。生年月日のセルを指定して、基準日に TODAY関数を使うと、今日の満年齢が求まります。

DATEDIF関数が、関数の一覧に出ないのはなぜですか?

DATEDIF関数は、古いExcelとの互換のために、残されている関数で、関数の一覧や、入力のヒントに、出ません。そのまま入力すれば、使えます。

年度末(3月31日)時点の年齢を求めるには?

基準日のセルに、3月31日の日付を入力して、DATEDIF関数の終了日に、そのセルを指定します。

あわせて読みたい:年齢・日付の関連記事

練習用ファイル:練習用Excelファイル(.xlsx・無料)

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次