★★★★★★Access2000VBA・Excel2000VBA独学~★★★日付の列から、「年度」や「月度」を出す関数式~
  
※まだ書きかけです。すみません。
※間違ってたらすみません。
※メモ書きなので、自分でも意味不明な箇所も多いです。ごめんなさい。
  
※関連記事
★★★★★★Access2000VBA・Excel2000VBA独学~★★★日付の列から、好きな基準で・特定の「独自期間」でグループ化し「その期間名」を出す・付ける関数式~

  
  
★ はじめに
「締め日をいつにするか」や、「ベタな日付ごとではなくて、年度ごと、締め日ごとに集計したい」、という場合、いちいち締め日を出すと大変なので、関数で出します。
ピボットやMySQLで集計するときにもとても便利です。

日付の列さえあればいいわけですので。
ただし、日付データは必ずシリアル値での日付である必要があります。

Webか何かで拾った式ですので、詳しいことはわかりませんが、ご参考にしてください。
  
  

★ 年度を出す関数式

(3/20締め=3月21日からが新年度の場合)    ↓3-1?    ↓締め日
=TEXT(DATE(YEAR(日付セル),MONTH(日付セル)-2,(DAY(日付セル)>20)),"YYYY")

(4/20締め=4月21日からが新年度の場合)    ↓4-1?
=TEXT(DATE(YEAR(日付セル),MONTH(日付セル)-3,(DAY(日付セル)>20)),"YYYY")
                       ↑ここをインクリメントする。

(5/20締め=5月21日からが新年度の場合)    ↓5-1?
=TEXT(DATE(YEAR(日付セル),MONTH(日付セル)-4,(DAY(日付セル)>20)),"YYYY")
  
  

★ 月度を出す関数式

True=1、False=0とみなして、
「締め日の日数に足したときに、必ず31になる、あるいは超える、そういう数値を算出する」
というところがポイントのようです。

式を分解して、シートに書き出してみないとなかなか理解できないと思います。
少なくとも僕はバカですので最初は理解できませんでした。

以下のサンプルファイルなどもご参考にしてみてください。

サンプルファイルダウンロード→こちら「年度締め・月度締めの関数作成.xlsm」
※解凍して、ファイルの各シートを見てみてください。

なお、月末締めの場合だけ、日付の「まんま」で出しやすいので、計算方式が異なります。

※その他の方法:参考Web→『エクセルの学校[[20060513164111]]

以下、関数です。

(20日締めの場合=21日からが新月度の場合)
=TEXT(日付セル+11*(DAY(日付セル)>20),"M")

(21日締めの場合=22日からが新月度の場合)
=TEXT(日付セル+10*(DAY(日付セル)>21),"M")

(15日締めの場合=16日からが新月度の場合)
=TEXT(日付セル+16*(DAY(日付セル)>15),"M")
         ↑31-締日      ↑締め日

(10日締めの場合=11日からが新月度の場合)
=TEXT(日付セル+21*(DAY(日付セル)>10),"M")

(月末締めの場合=1日からが新月度の場合)
=TEXT(日付セル,"M")   =TEXT(DATE(日付セル),"M")
あるいは、
=TEXT(DATE( YEAR(日付セル), MONTH(日付セル)+1, 0 ),"M")

  
メモ書き

「DAY($A2)>10」のところで、True=1、False=0とみなして、
「21*(DAY($A2)>10)」のところで、「プラスすると絶対に次月になる」、そういう「日数」を出している。
(※なので、締め日によって、21のところの値を変える必要があります。締め日の日数に足したときに、必ず31になる、あるいは超える数をセットする必要があります。31なら絶対に次月に「行く」ので。)

ただ、30日で終わる月もあれば、31、28、29、の月もあるので、
「$A2+21*(DAY($A2)>10)」の列の年月日は、切り替わりのところが必ずしも切り良く「1日」にならない。
ただし、求めるのは「月度」であって、つまり「月」のため、そのことは影響しない。なのでOK。

  

★ 締め日を算出する関数式

2007以降のExcelは基本、こちら↓
【Excel】EOMONTH関数を用いた締め日の計算、翌月の支払日の計算

2003以前の古いExcelはこちら↓

10日締めの場合
=DATE(TEXT(DATE(YEAR(日付セル)+1,MONTH(日付セル)-11,(DAY(日付セル)>10)),"YYYY"),TEXT(日付セル+21*(DAY(日付セル)>10),"M"),10)

15日締めの場合
=DATE(TEXT(DATE(YEAR(日付セル)+1,MONTH(日付セル)-11,(DAY(日付セル)>15)),"YYYY"),TEXT(日付セル+16*(DAY(日付セル)>15),"M"),15)

20日締めの場合
=DATE(TEXT(DATE(YEAR(日付セル)+1,MONTH(日付セル)-11,(DAY(日付セル)>20)),"YYYY"),TEXT(日付セル+11*(DAY(日付セル)>20),"M"),20)

月末締めの場合
=DATE(YEAR(日付セル),MONTH(日付セル)+1,1)-1

あるいは、

  
10日締めの場合
=DATE(YEAR(日付セル),TEXT(日付セル+21*(DAY(日付セル)>10),"M"),10)

15日締めの場合
=DATE(YEAR(日付セル),TEXT(日付セル+16*(DAY(日付セル)>15),"M"),15)

20日締めの場合
=DATE(YEAR(日付セル),TEXT(日付セル+11*(DAY(日付セル)>20),"M"),20)

月末締めの場合
=DATE(YEAR(日付セル),MONTH(日付セル)+1,1)-1

↑ただし、12月がうまくいかないので、結局は前述のややこしいやつがそこだけ必要になる。