Excelで日付を扱う業務では、「2つの日付の差」を計算する場面がよくあります。
例えば次のようなケースです。
- 入社日から現在までの勤続年数を求める
- 契約開始日から何か月経過したかを計算する
- 生年月日から年齢を算出する
しかし、単純に日付を引き算すると「日数」しか求められず、
年数差や月数差を正確に計算できないことがあります。
例えば
2020/1/1
2023/3/1
この2つの日付を引き算すると、結果は「1155日」のように表示されます。
実務では「3年2か月」のように表示したいことが多いため、日付差の計算方法を正しく理解しておくことが重要です。
この記事では、Excelで日付や年月を引き算して年数差・月数差・日数差を正確に求める方法を、実務でよく使われる関数とともに解説します。
目次
✅ Excelで日付を引き算する基本方法
Excelでは、日付は内部的に「シリアル値」という数値で管理されています。
そのため、日付同士を引き算すると日数差が計算されます。
例えば
開始日:2023/1/1
終了日:2023/1/10
この場合、セルに次のような数式を入力します。
"=B2-A2"
すると、結果は 9 と表示されます。
これは「9日間」という意味です。
・日付差を計算する基本手順
- 開始日と終了日を入力する
- 空白セルを選択する
- 数式に"=終了日-開始日"
を入力する
この方法はシンプルですが、結果は日数のみになります。
✅ Excelで年数差を求める方法(DATEDIF関数)
日付の差を「年単位」で求めたい場合は、DATEDIF関数を使います。
DATEDIF関数は、Excelで日付差を求める際に非常によく使われる関数です。
例えば、次のような数式です。
"=DATEDIF(A2,B2,"Y")"
この式は、2つの日付の年数差を計算します。
例
開始日:2018/4/1
終了日:2024/4/1
結果
6
これは「6年差」という意味です。
・DATEDIF関数の構文
"=DATEDIF(開始日,終了日,単位)"
単位には次のような種類があります。
| 単位 | 意味 |
|---|---|
| Y | 年数差 |
| M | 月数差 |
| D | 日数差 |
DATEDIF関数は、年齢計算や勤続年数計算などでよく使われます。
✅ Excelで月数差を求める方法
年月の差を月単位で求めたい場合は、次の数式を使用します。
"=DATEDIF(A2,B2,"M")"
この数式は、2つの日付の月数差を求めます。
例
開始日:2023/1/1
終了日:2024/4/1
結果
15
これは「15か月差」を意味します。
・月数差を求めるときの注意点
DATEDIFの"M"は、完全な月数のみを計算します。
例
2023/1/15
2023/2/14
結果
0
1か月未満の場合は、0になります。
月数差を計算する方法を理解しておくと、
契約期間や勤続年数などの計算が簡単になります。
さらに、Excelでは 月単位の日付計算(締日や月末処理など) を行う場面も多くあります。
月単位の日付計算の具体的な方法については、次の記事で詳しく解説しています。
→ 【Excel】月単位の日付計算をする方法【月末処理・締日・請求書にも使える!】
✅ 年と月の差を同時に求める方法
実務では「〇年〇か月」のように表示したいケースがあります。
例えば
2018/4/1
2024/6/1
この場合
6年2か月
と表示したいことがあります。
その場合は、次のように計算します。
年数
"=DATEDIF(A2,B2,"Y")"
月数
"=DATEDIF(A2,B2,"YM")"
YMは、年数を除いた月数差を求めます。
例
6年2か月
このように、DATEDIF関数を組み合わせることで、
年月差を正確に表示することができます。
Excelでは、日付差の計算だけでなく
日数差・月数差・年数差などさまざまな日付計算を行うことができます。
Excelの日付計算を体系的に理解したい方は、
次の記事も参考にしてみてください。
→ 【Excel】日付計算の完全ガイド|日数・月数・年数の求め方まとめ
✅ 年齢計算や勤続年数計算の実務例
Excelでは、日付差の計算は多くの業務で使われます。
例えば次のような場面です。
・年齢計算
"=DATEDIF(A2,TODAY(),"Y")"
生年月日から現在までの年齢を計算できます。
・勤続年数
入社日から現在までの年数
"=DATEDIF(A2,TODAY(),"Y")"
・契約期間の月数
契約開始日と終了日
"=DATEDIF(A2,B2,"M")"
このように、DATEDIF関数は日付計算の実務で非常に便利です。
年齢や勤続年数を計算する場合、
単に「年数」だけでなく 「〇年〇か月」のように表示したいケースもあります。
Excelでは、DATEDIF関数を組み合わせることで
「何歳何ヶ月」まで表示する年齢計算を行うことも可能です。
具体的な設定方法については、次の記事で詳しく解説しています。
→ 【Excel】「何歳何ヶ月」まで表示する年齢計算の方法【DATEDIF関数で簡単!】
✅ 日付差を計算するときによくあるミス
日付計算では、次のようなミスがよくあります。
・日付が文字列になっている
Excelで日付が文字列になっていると、
計算ができないことがあります。
その場合は
"=DATEVALUE(A2)"
などで日付に変換します。
・開始日と終了日が逆
DATEDIF関数では、開始日が終了日より後になるとエラーになります。
そのため
開始日 < 終了日
の順序で入力する必要があります。
✅ Excelで日付計算を使うと業務効率が上がる理由
日付計算を手作業で行うと、
年数や月数を確認するだけでも時間がかかります。
しかしExcelでは、関数を使うことで
- 年齢
- 契約期間
- 勤続年数
- 支払期限
などを自動で計算できます。
日付計算の関数を理解しておくと、
Excel業務の効率を大きく改善できます。
Excelの関数を使えば、日付計算を簡単に自動化できます。
ただし、大量のデータ処理や業務自動化を行う場合は、VBAを使った日付計算が役立つこともあります。
VBAでは DateSerial関数 を使うことで、年・月・日を指定した安全な日付計算を行うことができます。
DateSerial関数の具体的な使い方については、次の記事で詳しく解説しています。
→ 【VBA】DateSerial関数の完全ガイド|日付計算を安全に行う実務設計
✅ まとめ:Excelで日付と年月の差を正確に計算しよう
Excelでは、日付を引き算することで日数差を求めることができます。
さらにDATEDIF関数を使えば、年数差や月数差も正確に計算できます。
今回のポイントをまとめると次の通りです。
- 日付同士の引き算で日数差を求める
- 年数差はDATEDIF関数を使う
- 月数差もDATEDIF関数で計算できる
- 年月差はYとYMを組み合わせる
- 年齢や勤続年数の計算にも活用できる
日付計算はExcel業務で非常によく使われる処理です。
関数の使い方を理解しておけば、日付関連の計算を効率的に処理できるようになります。
ぜひこの記事の方法を活用して、
Excelの日付計算を正確に行えるようにしてみてください。