【VBAリファレンス】DATEDIF関数を極める 実務で即戦力となる年齢と勤続年数の自動計算完全ガイド

スポンサーリンク

概要:DATEDIF関数がなぜ「隠れた必須関数」なのか

Excelで日付データを扱う際、最も頻繁に遭遇する課題が「期間の計算」です。社員の年齢、プロジェクトの経過日数、勤続年数など、ビジネスの現場では「二つの日付の間の差分」を正確に算出する機会が溢れています。しかし、Excelには「DATEDIF」という非常に強力な関数が存在しながら、関数の挿入メニュー(fxボタン)には表示されないという特殊な立ち位置にあります。

本稿では、この「隠れた必須関数」であるDATEDIF関数の仕組み、構文、そして実務で避けては通れない「年・月・日の端数処理」について、ベテラン講師の視点から徹底的に解説します。単なる計算方法の提示にとどまらず、実務で発生しがちなエラーを防ぐためのベストプラクティスまで網羅的に解説します。

詳細解説:DATEDIF関数の基本構文と引数の仕組み

DATEDIF関数は、二つの日付の期間を「指定した単位」で返す関数です。構文は以下の通りです。

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

ここでのポイントは、引数「単位」の指定方法です。この単位こそが、計算結果の質を決定づけます。

・”Y”:期間内の満年数(経過年数)
・”M”:期間内の満月数(経過月数)
・”D”:期間内の満日数(経過日数)
・”YM”:1年未満の端数月数(年数を無視した月数)
・”MD”:1ヶ月未満の端数日数(月数を無視した日数)
・”YD”:1年未満の端数日数(年数を無視した日数)

例えば、2020年1月1日から2023年5月10日までの期間を計算する場合、”Y”なら「3」、”YM”なら「4」、”MD”なら「9」という数値が返されます。これらを組み合わせることで、「3年4ヶ月9日」といった人間が直感的に理解できる表現が可能になります。

サンプルコード:実務で使える「勤続年数」表示ロジック

単に年数だけを出すのではなく、「〇年〇ヶ月」という形式で表示させるのは、人事評価シートや台帳作成の基本です。以下のコード(数式)は、そのための最も標準的な記述例です。


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

さらに、ここに「日」まで含めて「〇年〇ヶ月〇日」と表記したい場合は、以下のように記述します。


=DATEDIF(A2, TODAY(), "Y") & "年" & DATEDIF(A2, TODAY(), "YM") & "ヶ月" & DATEDIF(A2, TODAY(), "MD") & "日"

注意点として、TODAY関数は毎日更新されるため、保存した時点での期間を固定したい場合は、該当セルをコピーして「値として貼り付け」を行う必要があります。

実務アドバイス:エラーを回避するためのテクニック

ベテランとして皆さんに強くお伝えしたいのは、DATEDIF関数は「開始日が終了日より未来にある場合」や「日付データが正しく入力されていない場合」に、#NUM! エラーを返すという特性です。これを放置すると、大規模な名簿管理シートがエラーだらけになり、計算不能に陥ります。

実務においては、必ずIFERROR関数と組み合わせて運用しましょう。


=IFERROR(DATEDIF(A2, B2, "Y"), "日付を確認してください")

また、年齢計算において「誕生日」が未来の日付になっている場合や、未入力セルがある場合にも同様のエラーが出ます。入力規則で「日付以外は入力不可」にする設定を併用するのが、プロのExcel構築術です。

年齢計算の特殊ケース:うるう年の扱い

年齢計算において、多くの初心者が陥る罠が「うるう年」の扱いです。DATEDIF関数は、内部でうるう年を適切に処理するよう設計されています。そのため、2月29日生まれの人の年齢計算でも、基本的には正確に機能します。

ただし、日本の法律(年齢計算ニ関スル法律)に基づくと、誕生日の前日に年齢が加算されるというルールがあります。DATEDIF関数は「誕生日の当日」に加算される設計であるため、厳密な法務上の年齢計算を行う場合は、計算式を工夫する必要がありますが、一般的な人事管理であればDATEDIFの仕様で十分許容範囲となります。

まとめ:DATEDIF関数をマスターして業務効率を最大化する

DATEDIF関数は、Excelの歴史において非常に古くから存在する、極めて安定した関数です。一度ルールを覚えてしまえば、年齢計算、勤続年数管理、プロジェクトの進捗管理において、これ以上の武器はありません。

1. 単位の使い分け(Y, M, D, YM, MD)を完璧に理解する。
2. 文字列結合演算子「&」を使って、視認性の高い表示形式を作る。
3. IFERROR関数でエラーを制御し、堅牢なシート設計を行う。

この3点を意識するだけで、あなたのExcelスキルはワンランク上の「実務プロフェッショナル」のレベルへ到達します。特に人事や総務の業務においては、この関数を使えるかどうかが作業時間に大きな差を生みます。ぜひ今日から、手元のデータで早速試してみてください。正確で美しい計算結果が、あなたの業務の信頼性を高めてくれるはずです。

タイトルとURLをコピーしました