【エクセル】生年月日から現在の年齢を自動計算する方法。DATEDIF関数の使い方

エクセルで生年月日から現在の年齢を自動計算するDATEDIF関数の使い方

Excel(エクセル)を使って、生年月日から現在の年齢を調べる時、対比表などを用いて一人ずつ調べていては時間がかかってしまいます。

こんな時、DATEDIF関数(デイトディフ)を利用すれば、簡単に「何歳」「何歳何か月」「何歳何か月何日」かを調べることができます。

今回は、DATEDIF関数を用いて『生年月日から現在までの年齢を自動計算する方法』を紹介します。

生年月日から現在までの年齢を自動計算
生年月日から現在までの年齢を自動計算

DATEDIF関数(デイトディフ)の使い方

生年月日から年齢を自動計算する方法を紹介する前に、まずはDATEDIF関数(デイトディフ)の使い方を解説します。

「DATE」は「日付」を意味する英語で、「DIF」は差や違いを意味する「difference」の頭文字からきています。

つまり、DATEDIF関数は、日付から日付までの期間を算出する関数です。

DATEDIF関数の構文と引数

DATEDIF関数とは、開始日から終了日までの期間を年数や月数や日数で表示する関数です。

DATEDIF関数の構文は下のとおりで、3つの引数を指定する必要があります。

=DATEDIF(開始日,終了日,単位

引数:開始日
カウントしたい開始日の日付を入力します。日付は”2022/9/28”やシリアル値(※)などを入力します。
(※)エクセルは日付データを「シリアル値」と呼ばれる特殊な数字で管理しています。 シリアル値とは、「1900年1月1日」を「1」として、何日経過したかを示す数値で、2022年9月28日なら「44832」がシリアル値となります。

引数:終了日
カウントしたい終了日の日付を入力します。日付は”2022/9/28”やシリアル値などを入力します。

引数:単位
開始日と終了後の期間をどの単位で表示したいかを指定します。年数であれば"Y"、月数であれば”M”、日数であれば”D”を指定します。単位の詳細は以下の表を参照。

使用できる単位は、下のとおりです。"Y""M""D"以外にも"YM"や"YD"も存在します。

単位説明
"Y"開始日から終了日までを年数で表します。
"M"開始日から終了日までを月数で表します。
"D"開始日から終了日までを日数で表します。
"YM"開始日から終了日までを月数で表します。 日付の日数および年数は無視されます。
"YD"開始日から終了日までの日数で表します。 日付の年数は無視されます。

DATEDIF関数の小数点以下の取り扱い

DATEDIF関数の使い方と小数点以下の端数の取り扱いを紹介します。

下の図のように、B列の開始日からC列の終了日までの期間を年数で表示するために、『=DATEDIF(B3,C3,"Y")』といった数式をD列に挿入しています。

DATEDIF関数と使い方と小数点以下の端数
DATEDIF関数と使い方と小数点以下の端数

ここで重要なポイントは、「2024/8/1」から「2026/9/1」の期間は2年1カ月なので約2.1カ月ですが、この場合のDATEDIF関数で返される数値は「2.0」となります。

同じように、「2024/9/1」から「2026/8/1」の期間は1年11カ月と2年に満たないので、この場合のDATEDIF関数で返される数値は「1.0」となります。

つまり、DATEDIF関数は、表示単位の小数点以下は切り捨てされるのが特徴です。

普通、年齢とか期間を四捨五入することはないから切り捨てられるんだろうね。

DATEDIF関数が見当たらない場合の対処方法

DATEDIF関数が見当たらない場合の対処方法を紹介します。

残念ながら、DATEDIF関数は特殊な関数で、関数候補や関数の挿入画面からは見つからないという現象が発生します。

DATEDIF関数は関数候補や関数の挿入画面には無い
DATEDIF関数は関数候補や関数の挿入画面には無い

このDATEDIF関数を複雑な計算に使用すると、誤った計算結果が表示されることがMicrosoftの公式ページでも公表されています。

そのため、DATEDIF関数はExcelの関数候補に表示されない状態となっています。

DATEDIF関数を使用する場合は、エクセルに直接「=DATEDIF(・・・」と直接キーボード操作で入力してから、引数など設定すれば問題なく利用できます。

DATEDIF関数が見つからなくても、直接数式を入力すれば使用可能
DATEDIF関数が見つからなくても、直接数式を入力すれば使用可能

DATEDIF関数で生年月日から現在の年齢(何歳)を計算する方法

実際に下の表から、DATEDIF関数を使って、「生年月日から現在の年齢を計算する方法」を2つ紹介します。

1つ目は、現在の日付をセルに入力する方法、2つ目は、現在の日付にTODAY関数を利用する方法です。

方法1.現在の日付を直接入力

それでは、まずDATEDIF関数を使った1つ目の方法を紹介します。

まず、生年月日の横の列に現在の日付を入力します。

手順1.日付列に現在の日付を入力
手順1.日付列に現在の日付を入力

次に、年齢を表示したいセルにDATEDIF関数を挿入します。年数で表示するために、3つ目の引数は年を表す「”Y”」を使います。

=DATEDIF(B3,C3,"Y")

手順2.DATEDIF関数を挿入
手順2.DATEDIF関数を挿入

そうすると、「2015/4/10」と「2024/6/1」までの期間が年数で計算されて、「9.0」と表示されます。

さらに、下のセルにDATEDIF関数をコピペすれば、全てのセルの年齢を算出することができます。

手順3.DATEDIF関数をコピペ
手順3.DATEDIF関数をコピペ

もし、DATEDIF関数の結果を「〇〇歳」と表示したい場合は、下のように「=D3&"歳"」という数式を挿入してください。

DATEDIF関数の結果に「歳」の文字を追加
DATEDIF関数の結果に「歳」の文字を追加

もし、E列を追加したくない場合は、D列の「セルの書式設定」を変更することでも対応可能です。表示形式タブのユーザー定義を「0歳」と設定すれば、全てのセルが「〇〇歳」と表示されます。

セルの表示形式を使って年齢の表示を変更
セルの表示形式を使って年齢の表示を変更

方法2.現在の日付にTODAY関数を用いる

続いて、DATEDIF関数を使った2つ目の方法を紹介します。

この方法は、現在の日付を表すセルを作成する必要が無いことがメリットです。

現在の日付はセルに入力せずに、直接、生年月日のセルに対してDATEDIF関数を使用します。

第2引数の「終了日」に「TODAY()」と入力します。TODAY関数は、現在の日付を表示するための関数です。期間は年数で表示したいので、第3引数は「”Y”」と指定します。

=DATEDIF(B3,TODAY(),"Y")

DATEDIF関数の使い方_TODAY関数を利用
DATEDIF関数の使い方_TODAY関数を利用

そうすると、「2015/4/10」と「現在の日付」までの期間が年数で計算されて、「9.0」と表示されます。

さらに、下のセルにDATEDIF関数をコピペすれば、全てのセルの年齢を算出することができます。

DATEDIF関数をコピペして完成
DATEDIF関数をコピペして完成

年齢を「〇〇歳」と表示したい場合は、上の見出しで紹介したとおり、D列に「=C3&"歳"」という数式を挿入してください。

DATEDIF関数の中にTODAY関数を入力すると、現在の日付を入力する必要が無いことがメリットです。

しかし、エクセルを開く度に終了日が変わってしまうのがデメリットなので、使い方には注意が必要です。

DATEDIF関数の結果を「何歳何か月」と表示する方法

DATEDIF関数の使い方は、上で紹介したとおりです。

今度は、下の図のように、DATEDIF関数の結果を、〇〇歳▲▲カ月と表示する方法を解説します。

DATEDIF関数の結果を「〇〇歳△△ヵ月」と表示
DATEDIF関数の結果を「〇〇歳△△ヵ月」と表示

まず、「年数」列、「月数」列、「年齢」列の3列を表に追加します。

表に3列追加
表に3列追加

次に、「年数」列にDATEDIF関数を挿入して、生年月日からの期間を年数で表示します。第3引数は年数を表す「”Y”」を使ってください。

=DATEDIF(B3,C3,"Y")

DATEDIF関数を使って年数を表示
DATEDIF関数を使って年数を表示

次に、「月数」列にDATEDIF関数を挿入して、生年月日からの期間を月数で表示します。第3引数は年数を表す「”YM”」を使ってください。

「”YM”」を利用すると、 日付の日数および年数は無視されて表示されます。

=DATEDIF(B3,C3,"YM")

DATEDIF関数を使って月数だけを表示
DATEDIF関数を使って月数だけを表示

「年数」と「月数」を表示することが出来たので、この2つのセルと「歳」と「カ月」という文字を「&」演算子を用いて結合します。

=D3&"歳"&E3&"カ月"

DATEDIF関数の結果を結合
DATEDIF関数の結果を結合

最後に、不要な列を非表示にすれば完成です。

「〇〇歳△△ヵ月」と表示されたことを確認
「〇〇歳△△ヵ月」と表示されたことを確認

DATEDIF関数は期間を表す関数

今回はDATEDIF関数を用いて生年月日から現在までの年齢を表示する方法を紹介しました。

他にも、入社日から現在までの年月を算出したり、部署の在籍期間を算出したりすることも可能です。

使い方のポイントは、ある日付とある日付さえ決まっていれば、簡単にDATEDIF関数で期間を算出できます。