【Excel】で「1年後の前日」を求める最も簡単な方法

  • このエントリーをはてなブックマークに追加

「Excelで“1年後の前日”ってどうするんだっけ?」

このような日付の疑問、意外と時間が取られてしまうことありますよね。契約更新日や有効期限など、実務ではこの計算をよく使います。「365日を足す?EDATE?それとも別の関数?」と迷いやすいポイントです。

でも実はやり方さえ分かれば、一瞬で解決できます!

この記事では、仕事でそのまま使える計算方法をわかりやすくまとめました。同じ疑問で手を止めたことがある方、必見ですよ。

Excelで「1年後の前日」を求める場面とは?

「Excelで1年後の前日」と計算したいユーザーの多くは、日付計算を自動化したい、または、契約期限・有効期限の管理を正確にしたいという目的があると思いますが、特に次のような場面や目的があると思います。

  • 契約の「満了日の前日」を自動計算したい
  • 開始日からちょうど1年のマイナス1日を求めたい
  • 期日のズレ(うるう年など)を避けたい

DATE関数・EDATE関数のどれを使うべきか知りたい

最もおすすめ:EDATE関数で1年後→1日引く方法

1年後の前日を最も安全に、かつうるう年にも対応して求めたい場合は、以下の式が最適です。

=EDATE(A1,12)-1

理由

  • EDATEは日付の「月単位」での移動にベスト
  • 12カ月=1年として扱われるためズレがない
  • 月末日(31日)でも正確に計算できる
  • うるう年(2/29)も自動調整される

例:2024/2/29(うるう年) → 1年後の前日

セル
A1 2024/2/29
B1(式) =EDATE(A1, 12) – 1
B1(結果) 2025/2/28

うるう年をまたいでも正確に「1年後の前日」を計算することができます。

別解①:DATE関数を使う方法

一応、DATE関数でも同じ結果が得られます。ただし…。

=DATE(YEAR(A1)+1, MONTH(A1), DAY(A1)) - 1

メリット

  • 年・月・日の構造が見えるので理解しやすい
  • DATE関数のみで完結

デメリット

  • 「存在しない日付」を指定した場合は自動補正が入るため、挙動が読みにくい場合がある(例:2/29など)

注意点:1年後ではなく「365日後」ではダメな理由

よく間違えてしまうのが、次の式ですね。

=A1 + 365 - 1

これは正確な意味での「1年後」にはならないため注意が必要です。

理由

  • うるう年は1年が366日のためズレる
  • 年をまたぐ日付計算に対応できない
  • 2/28 → 365日後=翌年2/27になるケースなど不具合が出る

正しく処理するために、365日ではなく、やはり、ExcelのDATE・EDATEを用いて「日付としての1年」を扱う必要がありそうです。

「1年後の前日」を使う典型例

実務での使用例をいくつか紹介しますね。

例1:契約期間の自動計算

開始日(例:2024/4/1)から「1年後の前日」を求める。

=EDATE(A1, 12) - 1

結果:2025/3/31

例2:有効期限の自動記入

例えば定期券とかで見られる期限。またポイント、有効期限の自動入力などでも利用されていますね。

例3:退職日・更新日の計算

更新日が「入社日から1年後の前日」で決まる企業も多いですので、勤怠管理や人事計算で頻繁に使われると思います。

まとめ:最も正確な方法は「EDATE – 1」

Excelで「1年後の前日」を求めるなら、EDATE関数が無難だと思います。

=EDATE(A1, 12) - 1

うるう年を含むすべてのケースで、挙動が最も安定しており、実務向きですね。「DATE関数」も代替手段として有効ですが、迷ったら EDATE関数を使えば安心です。

私もExcelに慣れていない時、DATE関数を使っていた時もありますが、想定していない挙動が発生して、手直しが発生した経験などもあるので、それ以来、EDATE関数ですね。

       
  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

     

コメントを残す


CAPTCHA