スナックelve 本店

バツイチ40代女の日記です

カレンダーの長さ

あけましたな、平成31年。今年も生き残ることを目標に頑張ります。(昨日のエントリと違うことを言い出すパターンw)

マルセイが今年のカレンダーはなんだか長いと思ったら1週間多いんだ、と言ってきた。
f:id:elve:20190101180502p:plain
これ、カレンダー作ったことがある人ならわかると思うが、1週間多いわけではない。
今年で言うと3月とか
f:id:elve:20190101180604p:plain
6月が6週あるんだよね~。
f:id:elve:20190101180648p:plain
というわけで、マルセイが感じたカレンダーの違和感は2年連続で同じところで貰ったカレンダーだったのを、今年のは貰えなくて、別のところから貰ってきたからっつー話でしたw

エクセルでカレンダーを作る

エクセル(2010)でカレンダー作りかた。elve流w エクセルがバグらない範囲で表示できるはず(;´Д`)
もっと楽な方法あるぜ! って突っ込みもお待ちしておりますm(__)m

ヘッダー部分

まず、年、月を入力する枠を作ります。そんでその月の最終日を「=DAY(DATE(年,月+1,0))」で表示します。
その下に1~7の数字を入力。その下に日曜日から土曜日までを入力
f:id:elve:20190101181912p:plain

最初のセル

ここは「1日が日曜日だったら1」「それ以外は空白」って数式になります。
1日は指定した年月の1日なのでDATE($B$2,$E$2,1)
日曜日はWEEKDAY関数で1として取得できます。

=IF(WEEKDAY(DATE($B$2,$E$2,1),1)=B$3,1,"")

1週目のセル

最初以外の1行目のセルは「左隣のセルが空白じゃなかったら+1した値」「それ以外の時は1日が該当する曜日なら1」「該当しなければ空白」って数式

=IF(B5<>"",B5+1,IF(WEEKDAY(DATE($B$2,$E$2,1),1)=C$3,1,""))

2~4週目のセル

前日+1の値なのでシンプル。日曜日だけ左隣じゃないので注意
f:id:elve:20190101182700p:plain

5,6週目のセル

ここから、最終日以降判定「前日が空白だったら空白」「前日+1した値が最終日よりも大きかったら空白」判定をします。それ以外は前日+1の値。
日曜日は前日が左隣じゃないので注意。

=IF(H8="","",IF(H8+1>$H$2,"",H8+1))

フォーマットを整える

最終日、1~7の値は表示されても意味のない値なので白文字(or背景色)にして行高を小さくするなどしてフォーマットを整えて完成です★

祝日対応とか

別シートに祝日入れて、条件付き書式でmatch関数使って・・・面倒だなぁw って感じです。
魅惑の5月
f:id:elve:20190101184259p:plain