Excel一覧 Excel操作・関数 データ操作 日付計算

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

Excelでスケジュールや契約管理をしていると、
「開始日と終了日の年月差を出したい」
「ある日付から現在までの年数や月数を知りたい」
といったシーンが多くあります。

✔ 年数差を出して勤続年数や年齢を算出したい
✔ 月数の差で契約期間や支払い回数をカウントしたい
✔ 「○年○ヶ月」形式で表示したい

この記事では、Excelで「日付と年月」を引き算して、年数・月数を計算する方法をわかりやすく解説します!

✅DATEDIF関数で「年数」や「月数」を求める

DATEDIF関数は、2つの日付の差を「年」「月」「日」単位で算出できる便利な関数です。

・年数を求める(満年数)

=DATEDIF(開始日, 終了日, "Y")

・月数を求める(満月数)

=DATEDIF(開始日, 終了日, "M")

・年を除いた月数(「○年○ヶ月」の"ヶ月"部分)

=DATEDIF(開始日, 終了日, "YM")


🧪 使用例

A列(開始日)B列(終了日)年数差月数差
2020/01/012024/04/01=DATEDIF(A2,B2,"Y") → 4年=DATEDIF(A2,B2,"M") → 51ヶ月

【Excel】日付を1日足す計算方法【予定表や日次処理に便利!】

✅「○年○ヶ月」形式で表示する

年数+月数を1つのセルで表示したい場合は、DATEDIF関数を組み合わせます。

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

👉 2020/01/01 〜 2024/04/01 →「4年3ヶ月」 と表示されます。

【Excel】月単位の日付計算をする方法【月末処理・締日・請求書にも使える!】

✅YEAR/MONTH関数を使って差を出す(単位:ヶ月)

日付同士を「年月の差」としてカウントするには、以下のような計算も可能です。

=(YEAR(B2) - YEAR(A2)) * 12 + MONTH(B2) - MONTH(A2)

👉 これでA2からB2までのトータルの月数差が算出されます。

✅TODAY関数を使って「今日までの年月差」を出す

現在までの経過年数・月数を出す場合は TODAY() を組み合わせます。

・経過年数

=DATEDIF(A2, TODAY(), "Y")

・経過月数

=DATEDIF(A2, TODAY(), "M")

・「○年○ヶ月」形式で表示

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

📌 勤続年数や顧客との取引年数などにも活用できます!

📝 よくあるエラーと対処法

エラー原因解決策
#NUM! エラー開始日 > 終了日 になっている日付の順序を確認・IF関数で制御
#VALUE! エラーセルに日付以外の値や文字列が入っているセルを「日付」形式にする
関数が出てこないDATEDIFは「隠し関数」手入力で入力(=DATEDIF(...))

まとめ:用途別・年月の差を求める方法

やりたいこと数式例関数
年数差を出す=DATEDIF(A2, B2, "Y")DATEDIF
月数差を出す(トータル)=DATEDIF(A2, B2, "M")DATEDIF
月単位の差(YEAR/MONTHで)=(YEAR(B2)-YEAR(A2))*12+MONTH(B2)-MONTH(A2)YEAR, MONTH
「○年○ヶ月」形式で表示=DATEDIF(A2,B2,"Y") & "年" & DATEDIF(A2,B2,"YM") & "ヶ月"DATEDIF
今日までの年月差=DATEDIF(A2,TODAY(),"Y") & "年" & DATEDIF(A2,TODAY(),"YM") & "ヶ月"DATEDIF + TODAY

🎯 活用シーン

  • 勤続年数・在籍年数の自動表示

  • 契約期間・取引期間の算出

  • 製品購入からの経過年月の管理

  • 年齢・月齢の計算(保育園・医療機関など)

-Excel一覧, Excel操作・関数, データ操作, 日付計算