日付計算をマスター!DATE関数・DATEDIF関数で年齢・勤続年数・期間計算を自動化

日付計算をマスター!DATE関数・DATEDIF関数で年齢・勤続年数・期間計算を自動化

従業員の年齢計算、勤続年数の算出、プロジェクトの期間計算など、日付に関する計算は業務で頻繁に発生しますが、手作業では時間がかかり、計算ミスも起こりがちです。

今回は、ExcelやGoogleスプレッドシートでDATE関数・DATEDIF関数を使って、日付計算を自動化し、正確で効率的な期間計算を実現する方法を実例とともに詳しく解説します。

DATE関数・DATEDIF関数とは?日付計算の基本ツール

DATE関数は年・月・日の数値から日付データを作成し、DATEDIF関数は2つの日付間の期間を様々な単位で計算します。

こんな場面で活用できます:

  • 従業員の現在年齢を生年月日から自動計算
  • 勤続年数・勤続月数の正確な算出
  • 契約期間や保証期間の残日数計算
  • プロジェクトの進行期間や残期間の把握
  • 定年退職までの残年数計算
氏名 生年月日 入社日 現在年齢 勤続年数
田中太郎 1985/4/15 2010/4/1 39歳 14年3ヶ月
佐藤花子 1992/8/22 2015/7/1 32歳 9年6ヶ月
鈴木一郎 1978/12/3 2005/3/15 45歳 19年9ヶ月

このような人事データから、年齢や勤続年数を自動計算してみましょう。

基本構文の理解

DATE関数・DATEDIF関数の基本的な書き方をマスターしましょう。

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

DATE関数の具体例:

  • =DATE(2024,12,25) ➜ 2024年12月25日の日付データを作成
  • =DATE(A1,B1,C1) ➜ A1年B1月C1日の日付データを作成

DATEDIF関数の単位一覧:

単位 意味
"Y" 年数 25(年)
"M" 月数 300(ヶ月)
"D" 日数 9125(日)
"YM" 年を除いた月数 3(ヶ月)
"YD" 年を除いた日数 95(日)
"MD" 月を除いた日数 15(日)

実践例:従業員データの年齢・勤続年数計算

実際の人事データを使って、DATE関数・DATEDIF関数の活用方法を見てみましょう。

計算対象データ:

  • 生年月日:1985年4月15日(B2セル)
  • 入社日:2010年4月1日(C2セル)
  • 基準日:今日の日付(TODAY関数使用)

手順1:現在年齢の計算

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

結果:39(歳)

計算の流れ:

  1. 開始日:1985/4/15(生年月日)
  2. 終了日:2024/7/1(今日の日付)
  3. 単位:"Y"(年数で計算)
  4. 結果:39年 = 39歳

手順2:勤続年数の計算

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

結果:14(年)

手順3:より詳細な勤続期間(年数+月数)

=DATEDIF(C2,TODAY(),"Y") & "年" & DATEDIF(C2,TODAY(),"YM") & "ヶ月"

結果:14年3ヶ月

💡 TODAY関数の活用:

TODAY()関数を使うことで、常に最新の日付を基準とした計算が可能になります。ファイルを開くたびに自動的に更新されるため、管理が楽になります。

絶対参照を活用した効率的な一括計算

複数の従業員データを効率的に処理するため、絶対参照を使った数式の設計方法を解説します。

A列 B列 C列 D列(年齢) E列(勤続年数)
氏名 生年月日 入社日 =DATEDIF(B2,TODAY(),"Y") =DATEDIF(C2,TODAY(),"Y")
田中太郎 1985/4/15 2010/4/1 =DATEDIF(B3,TODAY(),"Y") =DATEDIF(C3,TODAY(),"Y")
佐藤花子 1992/8/22 2015/7/1 =DATEDIF(B4,TODAY(),"Y") =DATEDIF(C4,TODAY(),"Y")

効率的な数式設計:

D2セルに =DATEDIF(B2,TODAY(),"Y") を入力し、下方向にコピーすることで、自動的に行番号が調整されます。

より詳細な表示用数式:

=DATEDIF(B2,TODAY(),"Y") & "歳" & DATEDIF(B2,TODAY(),"YM") & "ヶ月"

結果:「39歳4ヶ月」のような詳細表示が可能

応用例:契約期間管理と期限アラート

DATE関数とDATEDIF関数を組み合わせて、契約管理や期限管理システムを構築してみましょう。

契約名 開始日 契約期間(年) 終了日 残日数 ステータス
システム保守 2022/4/1 3 =DATE(YEAR(B2)+C2,MONTH(B2),DAY(B2)) =DATEDIF(TODAY(),D2,"D") =IF(E2<30,"要更新","継続中")

数式の詳細解説:

1. 契約終了日の自動計算:

=DATE(YEAR(B2)+C2,MONTH(B2),DAY(B2))

計算過程:

  • YEAR(B2)+C2 ➜ 2022+3 = 2025年
  • MONTH(B2) ➜ 4月
  • DAY(B2) ➜ 1日
  • 結果:2025/4/1

2. 残日数の計算:

=DATEDIF(TODAY(),D2,"D")

3. 期限アラートの設定:

=IF(E2<30,"要更新",IF(E2<0,"期限切れ","継続中"))

⚠️ 重要な注意点:

  • DATEDIF関数で開始日が終了日より後の場合、エラーになります
  • 2月29日などの存在しない日付は自動調整されます
  • 時間情報は無視され、日付のみで計算されます

実用的なトラブルシューティングと改善案

1. 「#NUM!」エラーが発生する場合

原因:開始日が終了日より後になっている

対処法:IFERROR関数で エラーハンドリング

=IFERROR(DATEDIF(B2,C2,"Y"),"日付エラー")

2. 年齢が正確でない場合

原因:誕生日がまだ来ていない場合の計算ミス

対処法:DATEDIF関数は自動的に調整するため、基本的には正確

3. 期間計算で小数点が出る場合

原因:日付が数値として認識されていない

対処法:DATEVALUE関数で文字列を日付に変換

=DATEDIF(DATEVALUE(B2),TODAY(),"Y")

💡 実務での活用ポイント:

  • 人事管理:定年まで の残年数自動計算
  • 契約管理:更新時期の自動アラート
  • プロジェクト管理:進捗率の自動算出
  • 資格管理:有効期限までの日数表示

まとめ

DATE関数・DATEDIF関数のマスターポイント

  • 使用場面:年齢計算、勤続年数、契約期間など日付に関するあらゆる計算
  • 基本構文:
    • =DATE(年,月,日) ➜ 日付データの作成
    • =DATEDIF(開始日,終了日,単位) ➜ 期間計算
  • 主要単位:
    • "Y" = 年数、"M" = 月数、"D" = 日数
    • "YM" = 年除外月数、"YD" = 年除外日数
  • 効率化のコツ:TODAY()関数との組み合わせで自動更新
  • 応用技:IF関数との組み合わせで期限アラート機能

日付計算をマスターすることで、人事管理や契約管理が大幅に効率化されます。手作業による計算ミスもなくなり、常に正確な期間情報を把握できるようになります!

コメントを残す