【Excel】EOMONTH関数|EDATE関数の年度表示との違い|月初を返す方法

エクセルに入力された日付の年度を表示する方法

今回はExcelで入力された日付の年度を返す方法について解説していきたいと思います。

1月1日から12月31日までの暦年を1年とする「年」と、暦年とは異なる区分で定めた「年度」で表現することがあります。

日本ですと「4月1日から翌年の3月31日まで」の1年間を年度とすることが一般的です。

例えば2020年4月1日も2021年3月31日も同じ2020年度になりますが、2021年4月1日になれば2021年度になります。

結論から記載しますと日付の年度を表示したいときは以下のように「=YEAR(EOMONTH(開始日, -3))」と入力することで可能になります。

ただし一番厳密なやり方は「=YEAR(EDATE(開始日,-3))」と入力する方法になります。

理由については後ほど解説します。

よく使う方は覚えてしまったほうが良いでしょう。

YEAR関数とEDATE関数については以下の記事で解説していますので参考にしてください。

【Excel】日付から年だけを取得するYEAR関数 【Excel】EDATE関数|YEAR関数と組合せて年度表示

今回はEOMONTH関数について紹介します。

EOMONTH関数|指定月数だけ前or後の月末の日付を返す

EOMONTH関数は開始日から起算して、指定された月数だけ前または後の月の最終日に対応するシリアル値を返します。

月の最終日のシリアル値を返すという点が、EDATE関数と異なる点です。

EDATE(開始日,-3) と入力した場合、開始日から起算して、ちょうど3ヵ月前の日付に対応するシリアル値を返します。

一方EOMONTH (開始日,-3) と入力した場合、開始日から起算して、3ヵ月前の月の最終日に対応するシリアル値を返します。

冒頭に一番厳密なやり方は「=YEAR(EDATE(開始日,-3))」と表現したのは、ちょうど3ヶ月前の日付まで遡るという目的であれば、「=YEAR(EDATE(開始日,-3))」を使用する方が正しいからです。

日付はちょうど3ヵ月前でなくても、月単位で3ヵ月前の月と一致していれば良い場合はEOMONTH関数を使用しても良いでしょう。

また、あえて3ヵ月前の月の最終日を返す必要がある場合は、EOMONTH関数を使用すべきでしょう。

尚、何れの関数を使用する場合も、値を返すセルの表示形式が「標準」のままですとシリアル値が表示され、シリアル値と日付が頭の中で一致する人しか日付がわからないと思いますので、値を返すセルの表示形式を日付形式にしましょう。

書式

=EOMONTH (開始日,)

引数

引数 :開始日

開始日を表す日付を指定します。

日付は、シリアル値で返すか、DATE 関数を使って入力するか、他の数式または他の関数の結果を指定します。

DATE関数を使用する場合、たとえば、2008 年 5 月 23 日を入力するには「DATE(2008,5,23) 」と入力をします。

日付を文字列として入力した場合、エラーが発生することがあります。

DATE関数については以下で解説していますので参考にしてください。

【Excel】日付データに変換するDATE関数の使い方

※シリアル値

シリアル値とはExcelの日付や時刻の計算に使用されるコードのことです。

1900年1月0日をシリアル値「0」、1900年1月1日をシリアル値「1」として1日毎に1加算します。

例えば「2008 年 1 月 1 日」は「1900年1月1日」から39448日後になるので、シリアル値は「39448」になります。

引数 :

 開始日から起算した月数を指定します。正の数を指定すると起算日より後の日付を返し、負の数を指定すると起算日より前の日付を返します。

EOMONTH関数を用いた年度表示方法

日付から「4月1日から翌年の3月31日まで」を1年間とする年度に返すためには、3ヶ月前の日付の年を返せば良いことが分かります。

月を3ヶ月前に戻すだけならば以下のようにEOMONTH関数を使用します。

以下の例では2021/1/1の3ヶ月前の月の最終日(上の表の2020/10/31)を返す数式を示しています。

繰り返しになりますが、EOMONTH関数は開始日から起算して3ヵ月前の月の最終日に対応するシリアル値を返します。

ちょうど3ヶ月前の日付を返したい場合は、開始日が月の最終日である以外は使えませんので注意しましょう。

EOMONTH関数で返した日付を年に返すだけならば、以下のようにYEAR関数を使用します。

以下の例では2020/10/31の年を返しますので2020(年)になります。

今回はこの日付を3ヶ月前の月にする3ヶ月前の月にした日付の年を返すという2つの作業を一気にやってしまいますので、冒頭示した「=YEAR(EOMONTH(開始日, -3))」という数式を入力します。

「=YEAR(EOMONTH(A2,-3))」と入力すると以下のような結果になります。

セルをコピーすると、A列の2021年の各日付の年度がB列に正しく返されました。

EOMONTH関数で指定月数だけ前or後の月初の日付を返す場合は?

EOMONTH関数で開始日から起算して、指定された月数だけ前または後の月初に対応する日付を返すにはどうすればよいでしょうか?

以下の表では開始日から起算して、3ヶ月前の月末と月初を示していますが、一番右の列のように、 開始日から起算して、3ヶ月前の月初をEOMONTH関数を用いて返してみます。

結論から記載すると4ヶ月前の月末の日付をEOMONTH関数を用いて返して、+1を入力します

シリアル値は1日毎に1加算するということを先程書きました。

これは何をやっているかというと、EOMONTH関数で4ヶ月前の月末の日付を返して、シリアル値1を足す(月末の翌日にする)事によって、3ヶ月前の月初を返しています

開始日から3ヶ月前の月初を返す場合、以下のようにEOMONTH関数を使用します。

以下の例では2021/1/1の3ヶ月前の月初(上の表の2020/10/1)を返す数式を示しています。

「=EOMONTH(B3,-4)+1」と入力すると以下のような結果になります。

セルをコピーすると、B列の各日付の3ヶ月前の月初がE列に正しく返されました。

Excelを一度体系的に学ぶと、目に見えて生産性が飛躍的に向上します。

MOS Excel※は資格の取得、及び資格取得までのプロセスを通じて体系的にExcelスキルを身につけることができますのでコスパが良くおすすめです。

※Microsoft Office Specialist(MOS)ExcelはExcelの利用能力を証明する世界的な資格です。

筆者は「スペシャリスト(一般)」と「エキスパート(上級)」両方を取得して体系的にスキルを身に着けました。

MOS試験対策でどのテキストを使うべきか悩まれる方も多いのではないかと思いますが、以下がおすすめです。

今回の内容が参考になれば幸いです。

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA