Excel一覧 Excel関数 日付計算 計算・数値処理

【Excel】日付と年月を引き算する方法【何か月差・年数差を正確に求める】

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日間」という意味です。

・日付差を計算する基本手順

  1. 開始日と終了日を入力する
  2. 空白セルを選択する
  3. 数式に"=終了日-開始日"

を入力する

この方法はシンプルですが、結果は日数のみになります。


✅ 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の日付計算を正確に行えるようにしてみてください。

    -Excel一覧, Excel関数, 日付計算, 計算・数値処理