いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)1か月後・nか月後の日付を求める

 Googleスプレッドシートで、ある日付の1か月後の日付を求める方法です。
 専用の関数によって簡単に求められ、nか月後の日付も求められますが、どのように日付を求めているかを理解しておく必要はあります。

  • EDATE関数を使って、ある日付の1か月後やnか月後の日付を求めることができます。

手順

1か月後の日付を求める

 B3:B8の範囲に基準となる日付が入力されています。
 そこでC3セルに「=EDATE(B3,1)」と入力し、B3セルの日付の1か月後の日付を求めています。

 C3セル

=EDATE(B3,1)

 まさにEDATE関数が、この計算のための関数です。
 第2引数の「1」は「1か月後」という意味です。2を指定すれば2か月後、3を指定すれば3か月後が求められます(下記参照)。


 ところで、式を下方にコピーすると次のような結果になります。
 「2022/1/28」の1か月後は「2022/2/28」ですが、「2022/1/29」「2022/1/30」「2022/1/31」の1か月後もすべて「2022/2/28」となります。EDATE関数で「1か月後」の日付を求めると、基準日の翌月の同じ「日」が得られますが、翌月にその「日」が存在しない場合は月末の日付となります。翌々月の日付になることはありません。

注意点

 EDATE関数は日付の求め方の一つとして合理的ですし、予定や計画を立てる際には便利ですが、世の決まり事(契約、法律etc)における「1か月後」とイコールではありません。利用するシーンについてはよく検討する必要があります。

1か月=30日などとして1か月後の日付を求める場合

 1か月=30日など固定した日数に換算する場合は、その日数を足し算すればOKです。
 このケースでは翌日を1日後として30日後を求めています。

 C3セル

=B3+30

nか月後の日付を求める

 EDATE関数の第2引数を変えれば2か月後や3か月後の日付を求めることができます。
 ここでは第2引数を「3」とすることで3か月後の日付を求めています。1月31日の3か月後に4月31日という日付は存在しないので、代わりに4月30日が得られています。
 こうした日付の求め方と注意点については最初の例と同じです。

 C3セル

=EDATE(B3,3)

 ちなみに第2引数を12にすれば1年後の、24にすれば2年後の日付が求められます。
 基本的に同じ月日が得られますが、うるう年があるので2月29日に対して2月28日が返ってくる場合があります。