【Excel】DATEDIF関数で年齢・勤続年数を正確に計算する方法

【Excel】DATEDIF関数で年齢・勤続年数を正確に計算する方法
🛡️ 超解決

Excelで年齢や勤続年数を正確に計算したい場面は多いでしょう。

開始日と終了日の差を年単位で求める場合、単純な引き算ではうまくいきません。

この記事では、ExcelのDATEDIF関数を使って、年齢や勤続年数を正確に計算する手順を解説します。

Excel for Microsoft 365での操作を基準に、具体的な関数と使い方のポイントを説明します。

【要点】DATEDIF関数で期間を正確に計算する

  • DATEDIF関数: 開始日と終了日の差を年・月・日で計算する。
  • “Y”単位: 満年齢や満勤続年数を計算する。
  • “M”単位: 開始日から終了日までの総月数を計算する。
  • “D”単位: 開始日から終了日までの総日数を計算する。
  • “YM”単位: 満年齢から満年度を除いた月数を計算する。
  • “MD”単位: 満月数から満月を除いた日数を計算する。

ADVERTISEMENT

DATEDIF関数が期間計算に適している理由

Excelで日付の差を計算する際、単純な引き算では年単位の計算がうまくいきません。

例えば、2023年12月31日と2024年1月1日の差は1日ですが、単純な引き算では365日と表示されることがあります。

DATEDIF関数は、このような計算で発生しがちな誤差を解消し、指定した単位(年・月・日)で正確な期間を算出します。

この関数は、現在の日付と過去の特定の日付との差から、満年齢や勤続年数を計算するのに非常に役立ちます。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

DATEDIF関数の基本的な使い方と引数

DATEDIF関数は、3つの引数を取ります。

構文は次のとおりです。

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

各引数の意味は以下の通りです。

開始日: 期間の起点を表す日付です。

終了日: 期間の終点を表す日付です。

単位: 算出したい期間の単位を指定します。この単位によって、関数は異なる結果を返します。

単位には、以下の文字列を指定できます。

  • “Y”: 満年数を計算します。
  • “M”: 満月数を計算します。
  • “D”: 満日数を計算します。
  • “YM”: 満年数を除いた、満月数を計算します。
  • “YD”: 満年数を除いた、満日数を計算します。
  • “MD”: 満月数と満年数を除いた、満日数を計算します。

注意点として、DATEDIF関数はExcelの標準関数リストには表示されません。

そのため、関数入力時に候補として表示されず、手入力する必要があります。

また、終了日が開始日よりも前の日付の場合、#NUM!エラーが表示されます。

年齢を正確に計算する手順

DATEDIF関数を使って、ある日付時点での満年齢を計算する手順を説明します。

例えば、A1セルに誕生日、B1セルに計算したい日付(例:今日の日付)が入力されているとします。

  1. 計算結果を表示したいセルを選択する
    年齢を表示したいセルを選択してください。
  2. DATEDIF関数を入力する
    選択したセルに、以下の数式を入力します。
    =DATEDIF(A1, B1, "Y")
    A1セルに誕生日、B1セルに計算したい日付を指定しています。
  3. Enterキーを押す
    数式を入力したらEnterキーを押すと、満年齢が表示されます。

この数式は、A1の誕生日からB1の日付までの満年数を計算します。

例えば、誕生日が1990年5月15日で、計算したい日付が2024年3月10日の場合、結果は「33」となります。

もし、今日の日付を終了日として常に最新の年齢を表示したい場合は、TODAY()関数を使用できます。

その場合の数式は以下のようになります。

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

ADVERTISEMENT

勤続年数を正確に計算する手順

DATEDIF関数は、勤続年数の計算にも応用できます。

入社日と退職日(または現在の日付)を指定することで、勤続年数を正確に算出できます。

例えば、A1セルに入社日、B1セルに退職日(または今日の日付)が入力されているとします。

  1. 計算結果を表示したいセルを選択する
    勤続年数を表示したいセルを選択してください。
  2. DATEDIF関数を入力する
    選択したセルに、以下の数式を入力します。
    =DATEDIF(A1, B1, "Y")
    A1セルに入社日、B1セルに退職日(または今日の日付)を指定しています。
  3. Enterキーを押す
    数式を入力したらEnterキーを押すと、満勤続年数が表示されます。

この数式により、入社日から退職日までの満年数を計算できます。

例えば、入社日が2010年4月1日、退職日が2024年3月10日の場合、結果は「13」となります。

現在の日付を終了日として常に最新の勤続年数を表示するには、TODAY()関数をB1セルの代わりに使います。

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

年・月・日を組み合わせて表示する方法

DATEDIF関数は、年だけでなく、月や日も組み合わせて表示できます。

これにより、「〇年〇ヶ月〇日」といった形式で期間を表示できます。

例えば、A1セルに開始日、B1セルに終了日がある場合、以下のように数式を組み合わせます。

年数を表示: =DATEDIF(A1, B1, "Y")

年数を除いた月数を表示: =DATEDIF(A1, B1, "YM")

月数を除いた日数を表示: =DATEDIF(A1, B1, "MD")

これらの結果を連結するには、&(アンパサンド)演算子を使用します。

例えば、A1セルに開始日、B1セルに終了日がある場合、結果を「〇年〇ヶ月〇日」と表示するには、以下の数式を入力します。

=DATEDIF(A1, B1, "Y") & "年" & DATEDIF(A1, B1, "YM") & "ヶ月" & DATEDIF(A1, B1, "MD") & "日"

この数式は、まず満年数を計算し、次に満年数を除いた月数、最後に満月数を除いた日数を計算し、それらを文字列として連結しています。

これにより、例えば「2年3ヶ月5日」のように、より詳細な期間を表示できます。

DATEDIF関数でよくある入力ミスと対処法

DATEDIF関数は便利ですが、いくつかの注意点があります。

終了日が開始日より前の日付の場合

終了日(第2引数)が開始日(第1引数)よりも前の日付になっている場合、#NUM!エラーが表示されます。

原因: 日付の入力ミス、または意図しない日付が指定されている。

対処法:

  1. 日付の確認
    開始日と終了日のセルの値が正しいか確認してください。
  2. 数式の確認
    DATEDIF関数の引数で、開始日と終了日のセル参照が正しく指定されているか確認してください。

単位の指定ミス

DATEDIF関数の第3引数である単位(“Y”, “M”, “D”など)の指定を間違えると、意図しない結果やエラーになります。

原因: 単位の文字列が間違っている、または大文字・小文字の区別を間違えている(ただし、ExcelのDATEDIF関数は単位の大文字・小文字を区別しません)。

対処法:

  1. 単位の再確認
    使用できる単位は “Y”, “M”, “D”, “YM”, “YD”, “MD” のみです。これらの文字列が正しく入力されているか確認してください。
  2. 引用符の確認
    単位は必ずダブルクォーテーション(” “)で囲む必要があります。

関数が候補に表示されない

DATEDIF関数は、Excelの関数リストに表示されないため、入力候補に出てきません。

原因: DATEDIF関数が非表示関数であるため。

対処法:

  1. 手入力する
    関数名「DATEDIF」を直接セルに入力してください。
  2. 補完機能に頼らない
    入力候補が表示されなくても、そのまま関数名と引数を入力し、Enterキーで確定してください。

DATEDIF関数と他の期間計算方法の比較

Excelで期間を計算する方法はDATEDIF関数以外にもあります。

ここでは、代表的な方法として、単純な日付の引き算とYEARFRAC関数を比較します。

項目 DATEDIF関数 単純な日付の引き算 YEARFRAC関数
満年齢・満勤続年数計算 得意 不可 一部可能(年単位)
年・月・日単位の計算 得意(“Y”, “M”, “D”, “YM”, “YD”, “MD”) 不可 不可
関数リストへの表示 なし なし(機能として) あり
日割り計算(端数処理) 不可 可能(総日数を計算) 得意
閏年の考慮 正確に考慮 正確に考慮 正確に考慮
使いやすさ 単位指定が必要 直感的だが不正確 引数が多い

単純な日付の引き算は、結果が総日数になるため、年数や月数に変換するにはさらに計算が必要です。

YEARFRAC関数は、期間を年単位の小数で返しますが、満年齢や満勤続年数のような厳密な年数計算には向きません。

したがって、満年齢や勤続年数を正確に計算したい場合は、DATEDIF関数が最も適しています。

まとめ

この記事では、ExcelのDATEDIF関数を使用して、年齢や勤続年数を正確に計算する方法を解説しました。

DATEDIF関数を使えば、開始日と終了日の差を年・月・日で正確に求めることができます。

特に、満年齢や満勤続年数の計算には”Y”単位、年数を除いた月数には”YM”単位、月数を除いた日数には”MD”単位が便利です。

今後は、DATEDIF関数を活用して、人事管理や顧客管理などのデータ分析に役立ててください。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】