いきなり答える備忘録

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

(Excel)年度末の日付を求める方法

 Excelで、ある年度やある日付に対応する年度末の日付を求める方法についてです。
 ここでは3月31日を年度末とする場合の例を紹介しますが、他の月を年度末とする場合にも応用できます。

年度(西暦)から年度末の日付を求める

 次の画像では、B3:B5の範囲に西暦で年度が記録されています。
 そこでC3セルに次のような式を入力し、C5セルまでフィルコピーすることでそれぞれの年度の年度末の日付を求めています。

 C3セル(下方にフィルコピー)

=DATE(B3+1,3,31)

 2024年度の年度末は2025年3月31日ですし、n年度の年度末はn+1年3月31日となります。そこでDATE関数を使い、3つの引数(年、月、日)を「B3+1」「3」「31」と指定することで年度末の日付を求めています。

 3月以外の月を年度末とする場合も同様で、例えば4月を年度末とする場合は「=DATE(B3+1,4,30)」でOKです。ただし年度末が12月末の場合は第1引数の「+1」を除いて「=DATE(B3,12,31)」とします。


日付から年度末の日付を求める

 次の画像では、B列にいくつかの日付が記録されています。
 そこでC列に次のような式を入力して、日付が属する年度の年度末の日付を求めています。

 C3セル(下方にフィルコピー)

=DATE(YEAR(EDATE(B3,-3))+1,3,31)

 1つ前の例でみたように、年度(数値)がわかれば「DATE(年度+1,3,31)」という式で年度末の日付が求められます。
 そこで「YEAR(EDATE(B3,-3))」によりB3セルの日付が属する年度を求めています。
 「EDATE(B3,-3)」は「B3セルの3か月前の日付」という意味で、B3セルがどのような日付であってもその3つ前の月に属する日付を取得できます(例:2024/7/31→2024/4/30)。これをYEAR関数で囲んで「YEAR(EDATE(B3,-3))」とすることで「B3セルの日付の3つ前の月が属する年(暦年)」つまり「B3セルの日付が属する年度」が取得できます。ちょっと難しいですが、例えば2024/3/1→2023/12/1→2023(年度)となりますし、2024/4/1→2024/1/1→2024(年度)となります。最後にこれに1を足してDATE関数と組み合わせることで年度末の日付が求められます。

今年度末の日付を求める

 次の画像では、B3セルに式を入力してその年の年度末の日付を求めています(2024年6月に実行)。

 B3セル

=DATE(YEAR(EDATE(TODAY(),-3))+1,3,31)

 考え方は1つ上の例と同じで、他のセルの日付を参照する代わりに「TODAY()」つまり今日の日付を指定しています。