仕様:通常の横型のカレンダー、年、月は固定、変更するとそれに応じたカレンダーが表示される。
アルゴリズム
日曜日から曜日を記入する
曜日を記述した以下の行から1行目とする。
カレンダーの大きさ
2月は1日が日曜の場合28日は土曜日になるので5行目から月末の式を記入する。
1日が土曜日と想定すると、カレンダーの行数は6行必要となる。
計算式
1日は何曜日なのか、人はどのようにして曜日を求めるのか。
月初めの式
1日の判断は、曜日の行の下に夫々の曜日を判断して、その曜日であれば1を記入。
1行目の日曜日のセルだけが違う記述だがそれ以外は同じ。
以降は、前のセルが空白なら、式を実行せず空白を出力する。
2行目からは「前のセル+1」の式
月末の式
=MOUNTH()関数で、前日+1の結果と、月の入っているセルを比べて(IF関数)同じなら、前のセル+1。
違う場合は、月末以降なので空白のセルとする。
前のセルが空白なら、空白を出力。
ま、大雑把だがこんな感じで万年カレンダーが出来るはず。
イラストは、GoogleDocumentsのSpreadsheetで作ってみました。
