年度別集計にEDATE関数を用いる[Googleスプレッドシート]
「年度」は必ずしも1月始まりとは限りません。
学校は4月始まりがほとんどですし、企業も決算月はまちまちです。
「年度=4月始まり」とし、Googleスプレッドシートの
ピボットテーブルで年度別に集計しようとしたところ、
元データには「日付(yyyy/mm/dd)」はあるものの、「年度」がないことに気付きました。
当初はIF関数を用いようとしましたが、所属しているコミュニティのメンバーにEDATE関数を用いる手法を教えて頂きました。ありがとうございました。
自分の理解を深めるためにも本記事で整理します。
以下のような売上データがあるとして、
以下のような「年度別/事業所別」のクロス集計をしたいとします。
Googleスプレッドシートのピボットテーブルでは、
「ピボット日付グループを作成」というメニューがあり、
「年」単位で集計することが出来ますが
今回の場合、「4月始まり」の年度別集計をしたいので、
1-3月分の集計が意図通りになりません。
そこで集計のために「年度」列を追加します。
【1】IF関数を用いる手法
セルF2以降は以下の式を用います。
=IF(MONTH(D2)<=3,YEAR(D2)-1,YEAR(D2))
という条件分岐をIF文を用い、「年度」を返します。
私は当初この手法しか思いつきませんでしたが、
EDATE関数を用いるともっとシンプルにすることができました。
【2】EDATE関数を用いる手法
セルF2以降は以下の式を用います。
=YEAR(EDATE(D2,-3))
EDATE関数は、開始日から指定した月数だけ後ろまたは前の日付を返す関数です。
EDATE(開始日, 月数)
開始日 - 結果を計算するための起点となる日付
月数 - 開始日の後ろ(正)または前(負)の計算対象となる月数
第二引数「月数」を「-3」とすると、
以下の日付はそれぞれ下記のように「3か月前」の日付を返します。
以上の戻り値を元にYEAR関数を用いると、意図する年度を取得することが出来ます。
以上、EDATE関数を用いシンプルに「年度」を取得する手法を記しました。
<参考>EDATE関数 リファレンス
この記事が気に入ったらサポートをしてみませんか?