「年度を表示する関数はないのでしょうか?」
「日付から年度を表示するにはどうしたらいいのでしょうか?」
といったご質問をいただくことがあります。
例えば、
「2009年3月31日」なら「2008」年度
「2009年4月1日」なら「2009」年度
と自動的に表示させたいという要望です。
IF・YEAR・MONTH関数で年度を取得
直接年度を自動表示するようなワークシート関数は用意されていませんが、いくつかの日付に関連した関数とIF関数を組み合わせれば年度を表示できます。※A1セルに日付が入力されているときに、B1セルに年度を表示する例
B1セルに
「=IF(MONTH(A1)<=3, YEAR(A1)-1, YEAR(A1))」
という数式を入力する
日付の月に着目すると、1月から3月なら前年が年度になり、4月から12月はその年がそのまま年度になります。
それをExcelの数式にすると上記の式です。
「MONTH(A1)」でA1セルに入力された日付の月だけを取得できます。
その値が「3」以下
「MONTH(A1)<=3」
ならば、入力された日付の年から「1」マイナスした値が年度になり
「YEAR(A1)-1」
「MONTH(A1)<=3」に該当しない、即ち4以上なら入力した日付の年そのもの
「YEAR(A1)」
が年度となります。
「年度」という文字も表示したいのなら、[セルの書式設定]ダイアログ−[表示形式]タブで、
「0"年度"」
とユーザー定義書式を設定したり、文字列結合演算子「&」を利用して
「=IF(MONTH(A1)<=3, YEAR(A1)-1, YEAR(A1)) & "年度"」
といった数式にしてください。
今日の日付から自動的に年度を表示したいのなら、TODAY関数を使って
「=IF(MONTH(TODAY())<=3, YEAR(TODAY())-1, YEAR(TODAY()))」
とすればOKです。
EDATE・YEAR関数で年度を取得
上記のIF関数を使う式が理解しやすいと思いますが他の式もご紹介しておきます。
EDATE関数を使って3か月前の日を求めて、年度を取得するという方法です。
結局、年度を求めるときの課題は、1月から3月だけは前の年の数値が年度になっている、という部分にあります。
それをIF関数を使って条件分岐したのが、上記の
「=IF(MONTH(A1)<=3, YEAR(A1)-1, YEAR(A1))」
です。
1月から3月は前の年の数値が年度になっているということは、年度を調べたい日の、3か月前の日付の年を取得すれば年度になるということも、実は、できます。
その考え方をEDATE関数とYEAR関数を使った式にするわけです。※A1セルに日付が入力されているときに、B1セルに年度を表示する例
B1セルに
「=YEAR(EDATE(A1, -3))」
という数式を入力する
A1セルに入力された日付の3か月前の日をEDATE関数を使って求め「EDATE(A1, -3)」、その日付の年をYEAR関数を使って取得して「YEAR(EDATE(A1, -3))」います。
EDATE関数を使わないのであれば、
「=YEAR(DATE(YEAR(A1), MONTH(A1)-3, DAY(A1)))」
という数式です。(EDATE関数とMONTH関数の加減算は厳密には異なりますが、今回の事例ではどちらでも同じです)
- Newer:割引率の計算方法は?
- Older:リボンからワークシートを挿入するには?−ホーム-セル-挿入
Home » Excel(エクセル)の関数・数式の使い方 » 日付の処理・計算 » 年度を表示する関数は?-IF・YEAR・MONTH・EDATE