• 関数
  • 労務
  • 人事

DATEDIF関数で勤続年数や年齢計算をする方法とは?マスターしてミスを予防しよう!

2021.12.09

DATEDIF関数で勤続年数や年齢計算をする方法とは?マスターしてミスを予防しよう!

目次

社員名簿や会員リストを作成し年齢を管理する際、それぞれの生年月日から年齢を手入力していませんか?

DATEDIF関数を使うことで、古い日付から新しい日付までの経過期間を、指定した単位で計算してくれるため、業務効率化を図ることができます。

今回はそんなDATEDIF関数について、じっくりと使い方をご紹介します。

EXJ_みずき

監修:みずき さん
EXCEL女子の研修講師をしています。Excel研修では「覚える」だけではなく「理解する」ことで、自身の力としてExcelスキルを身につけられる研修を実施しています。研修をするたびにExcelが大好きになり、Excelってすごい!と実感しています。Excelの他には写真が好きで食べ物や風景を撮影しています!

DATEDIF関数を使うメリット

名簿に入力されるデータの中には、年齢や勤続年数のように値が毎年変わるものがありますが、これらを毎年計算し直すのは大変ですよね。

2つの日付から年数、月数、日数などを求める際にDATEDIF関数を使うことで、自動で計算してくれるため非常に便利です。また、計算ミスを防ぐことができるため正確かつスピーディーな資料作成が可能です。

DATEDIF関数の使い方

DATEIF関数の基本構文は以下の通りです。

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

2つの日付の期間を求め、その間の「年数」、「月数」や、日数」などを求める
  • 開始日:生年月日や入社年月日といった開始の日付
  • 終了日:期間を求めたい終了の日付
  • 単位:下記の表を参照


単位の引数は、以下の表の文字を指定します。

単位 意味
"Y" 期間内の満年数 =DATEDIF("2015/1/1","2016/3/1","Y")→1
"M" 期間内の満月数 =DATEDIF("2015/1/1","2016/3/1","M")→14
"D" 期間内の満日数 =DATEDIF("2015/1/1","2016/3/1","D")→425
"YM" 1年未満の月数 =DATEDIF("2015/1/1","2016/3/1","YM")→2
"YD" 1年未満の日数 =DATEDIF("2015/1/1","2016/3/1","YD")→59
"MD" 1か月未満の日数 =DATEDIF("2015/1/1","2016/3/1","MD")→0

それでは実際の数式を入力してみましょう。

勤続年数の計算方法

(1)結果を表示させたいセルを選択する
スクリーンショット (149)

 

(2)数式バーに「=DATEDIF(F4,$F$1,"Y")」と入力する
この場合、開始日は入社年月日のセル【F4】、終了日はセル【F1】を指定し、単位は満年数を意味する「"Y"」と入力します。また、セル【F1】は絶対参照($)で固定しておきましょう。

スクリーンショット (150)

▼ 絶対参照について詳しく学びたい方は、以下のブログをご覧ください。
参考:【Excel入門】絶対参照とは?$(ドルマーク)の使い方をわかりやすく解説します!

 

(3)Enterキーを押す
セル【G4】に勤続年数が表示されます。
スクリーンショット (151)

 

(4)オートフィル機能で数式をコピーする
セル【G4】の数式がコピーされ、全員の勤続年数が表示されます。

スクリーンショット (152)

▼オートフィル機能について詳しく学びたい方は、以下のブログをご覧ください。
参考:Excelのオートフィルとは?連続データの自動入力やフラッシュフィルについても解説!

年齢を計算し、◯歳◯ヶ月で表示する場合

(1)結果を表示させたいセルを選択する
スクリーンショット (153)

 

(2)数式バーに「=DATEDIF(D4,$D$1,"Y")&"歳"&DATEDIF(D4,$D$1,"YM")&"ヶ月")」と入力する
数式が長いため難しく思えますが、前後で分けて見れば考え方は先程と同様です。
スクリーンショット (154)

 

(3)Enterキーを押す
セル【E4】に年齢が◯歳◯ヶ月で表示されます。
スクリーンショット (155)

 

(4)オートフィル機能で数式をコピーする
セル【E4】の数式がコピーされ、全員の年齢が表示されます。
スクリーンショット (156)

 

↑ 記事TOP

DATEDIF関数の使い方 応用編

DATEDIF関数の応用的な使い方の例として、ある一定の月数が経過した段階でイベントやプレゼントなどのサービスを行ったり、経過年月を管理したりする際にも便利です。

他の関数と組み合わせる場合

例題)入会後50ヵ月以上で、F列に「プレゼント」と表示する

 

(1)セル【E4】の数式バーに「=DATEDIF(D4,$D$1,"M")」と入力する
1

 

(2)オートフィルで数式をコピーする
各会員が入会してからの月数が表示されます。
2-1

 

(3セル【G4】の数式バーに「=IF(E4>=50,"プレゼント","")」と入力する
(もし、セル【E4】が50以上なら「プレゼント」と表示し、そうでなければ空白で表示してね。という意味です。)
3

 

(4)オートフィルで数式をコピーする
入会後月数が50ヶ月以上の会員のみ、G列に「プレゼント」と表示されます。
4

DATEDIF関数で気を付けたいポイント

うるう年を含む計算

DATEDIF関数は、範囲内にうるう年などがあったりすると間違った結果を出すことがあります。給与など正確な計算が必要な場合には、利用を控えるか、計算結果が正しいか再確認しましょう。

日本の法律の年齢計算

日本の法律(年齢の数え方に関する法律)では、年齢を誕生日の前日に加算します。そのため、このルールにのっとる場合は、「=TODAY()」のあとに「+1」を追加しましょう。

また、DATEDIF関数は誕生日を過ぎると自動計算されるため、年齢が増えてしまいます。1日違うだけでも計算結果は大きく変わってきてしまうので、これらを踏まえたうえで法律と一般慣習のどちらを基準に運用するか考えて利用しましょう。

まとめ

今回は、2つの日付から年数、月数、日数を求めて表示をしてくれるDATEDIF関数をご紹介しました。

DATEDIF関数は、勤続年数や契約年数など社員管理を中心に、様々なシーンで活用できる関数です。ぜひ、DATEDIF関数を上手に使いこなして、業務効率をあげてゆきましょう。

当社では、『Microsoft認定トレーナー』資格を持つEXCEL女子による「Excel研修」を提供しております。書籍化するなど注目いただいている研修です。

社員教育に時間を割けない、Excelスキルの底上げをしたいなどお悩みでしたら、ぜひお気軽にお問い合わせください。

Excel研修のサービス案内資料

Excel研修のサービス案内資料

実際に現場で活躍するEXCEL女子が考えたカリキュラムをもとに、学習するExcel研修のご紹介です。
資料ダウンロード
PAGE TOP