エクセルで日付の差を計算する際に便利な「DATEDIF関数」。
この関数を使えば、年齢や勤続年数、契約期間などを簡単に求めることができます。
ただし、DATEDIF関数は関数一覧に表示されないため、正しい使い方を理解しておくことが重要です。
この記事では、「DATEDIF 関数 使い方」を検索している方に向けて、基本的な使い方から応用例、トラブルシューティングまで詳しく解説します。
当サイトでは、Excel(エクセル)のテクニックを覚え、業務効率化や転職を通じて年収アップを目的としています!
年齢計算や期間の差分計算など、さまざまなシーンで役立ちますのでDATEDIF関数を使って業務効率化しましょう!
- DATEDIF関数の基本構文と引数の意味
- 年齢や勤続年数を計算する方法
- 関数が表示されない場合の対処法
- エラーが出る原因とその解決策
DATEDIF関数の使い方

DATEDIF関数の基本構文と引数の意味
DATEDIF関数は、2つの日付の差を求めるための関数です。基本的な構文は以下の通りです。
=DATEDIF(開始日, 終了日, 単位)
- 開始日: 計算を始める日付
- 終了日: 計算を終える日付
- 単位: 計算結果の単位を指定(”Y”:年、”M”:月、”D”:日など)
例えば、=DATEDIF("2020/01/01", "2025/01/01", "Y")
と入力すると、5年の差が計算されます。
単位には他にも”MD”(月を無視した日数差)、”YM”(年を無視した月数差)などがありますが、使用には注意が必要です。
年齢や勤続年数を計算する方法
年齢や勤続年数を計算する際には、開始日に生年月日や入社日、終了日に現在の日付を指定します。現在の日付はTODAY()
関数を使って取得できます。
=DATEDIF(生年月日, TODAY(), "Y")
この式を使えば、現在の年齢を自動的に計算できます。
同様に、勤続年数を求める場合も、入社日と現在の日付を指定すれば簡単に計算可能です。
複数の単位を組み合わせた計算
年齢や勤続年数を「○年○ヶ月」のように表示したい場合、DATEDIF関数を組み合わせて使用します。
=DATEDIF(開始日, 終了日, "Y") & "年" & DATEDIF(開始日, 終了日, "YM") & "ヶ月"
このようにすれば、年数と月数を組み合わせた表示が可能です。
ただし、日数まで含める場合は、さらに”MD”を使って計算する必要があります。
絶対参照を活用した複数セルの計算
複数のデータに対してDATEDIF関数を適用する場合、絶対参照を使うと便利です。
例えば、終了日を固定して複数の開始日に対して計算する場合、終了日のセルを$A$1
のように指定します。
=DATEDIF(開始日セル, $A$1, "Y")
これにより、数式を他のセルにコピーしても終了日が固定され、正確な計算が可能になります。
DATEDIF関数の注意点と制限事項
DATEDIF関数は、Excelの関数一覧に表示されない非公式な関数です。
そのため、入力ミスを防ぐためにも正確な構文を理解しておく必要があります。
また、一部の単位(特に”MD”)を使用すると、予期しない結果が返されることがあります。
公式なサポートがないため、使用には注意が必要です。
DATEDIF関数のトラブルシューティング
関数が表示されない場合の対処法
DATEDIF関数は、Excelの関数一覧や関数の挿入ダイアログには表示されません。
そのため、手動で正確に入力する必要があります。
入力ミスを防ぐためにも、構文をしっかりと覚えておくことが重要です。
そもそもの設定になりますが、
この関数は1900年1月1日以前の日付は使えませんので留意してください。
エラーが出る原因とその解決策
DATEDIF関数を使用していてエラーが表示される場合、以下の原因が考えられます。
- 開始日が終了日よりも後になっている
- 単位の指定が間違っている
- 日付の形式が正しくない
これらの点を確認し、修正することでエラーを解消できます。
単位指定による計算結果の違い
DATEDIF関数では、指定する単位によって計算結果が異なります。
例えば、”Y”は年数、”M”は月数、”D”は日数を返します。
また、”YM”や”MD”のように、年月を無視した日数や月数を計算する指定も可能ですが、これらは誤解を招きやすく、正しく使わないと思わぬ結果になることがあります。
例えば、「2023/01/31」から「2023/02/28」までの日数を”MD”で指定すると、「-3」といった予期しない結果になることもあります。
これは、月末の日付やうるう年などによる日付のズレが影響しているためです。
このようなケースでは、まず目的に応じた単位を正確に把握し、意味の通る単位を指定するようにしてください。
また、使用する前に小規模なデータで検証しておくのも良い方法です。
うるう年や月末日付の扱いに注意する
DATEDIF関数を使用する上で、うるう年や月末など特定の日付が計算結果に与える影響にも注意が必要です。
例えば、2月29日を含む日付の差を計算する際、1日多い/少ないといった結果になることがあります。
これは、Excelが内部的に日数を整数で処理しているために発生する現象です。
そのため、誕生日などで年齢を正確に求めたいときは、「Y」で得た年数が期待通りか確認し、必要であれば「D」や「MD」などと組み合わせて表示を調整してください。
他の関数との組み合わせで補完する方法
DATEDIF関数だけでは対応できない場合、他の関数を併用することで補完が可能です。
よく使われるのが「IF関数」や「TEXT関数」との組み合わせです。
例えば、年齢を求めて「18歳未満なら表示しない」などの処理を行いたい場合、以下のような式が使えます。
=IF(DATEDIF(A1, TODAY(), "Y")<18, "", DATEDIF(A1, TODAY(), "Y") & "歳")
また、DATEDIF関数の結果を「〇年〇ヶ月」として見やすく表示するためにTEXT関数と結び付けてフォーマットすることもできます。
このように、目的に応じて柔軟に他の関数と組み合わせることで、DATEDIF関数の利用価値をさらに高めることができます。
DATEDIF関数の使い方まとめ
- DATEDIF関数は2つの日付の差を簡単に計算できる
- 年齢や勤続年数などを自動で求めるのに便利
- 関数一覧には表示されず、手入力が必要
- 単位の指定によって年・月・日を区別できる
- “YM”や”MD”など特殊な単位指定も可能だが注意が必要
- TODAY関数と組み合わせて現在時点を動的に反映できる
- 絶対参照を使えば複数セルにも柔軟に対応可能
- “Y”と”YM”を使えば年+月のような表現もできる
- TEXT関数で見やすい表示ができる
- IF関数と併用して条件分岐処理も可能
- うるう年や月末日は結果に影響するため注意
- 単位指定の誤りがエラーの原因になりやすい
- 「関数が存在しない」と思ってしまう初心者が多い
- 入力ミスを防ぐため構文を覚えておく必要がある
- 検証したうえでの使用が望ましい
コメント