スポンサー
横一列とか縦一列に、該当月のカレンダーを表示するのは、出勤簿などでよく使うので、何度も作ってたけど、意外とカレンダー形式って使うことがなかった。
久々にEXCELやってみるぞ。
最終目標として、架空の猫カフェの営業日のみに、Aさん、Bさん、Cさん、Dさんに順繰りに当番を割り当てるイメージ。
定休は”水曜日”、もし、水曜日が祝日ならば、その日は営業し、翌日の”木曜日”がお休みになる。
まずは、5月のカレンダー作成まで。
カレンダーは日曜始まりとする。
西暦を表示
セルA1に西暦、「2020」を入力。
セルの書式設定(Ctr+1)で、表示形式を「ユーザー定義」を選択し、種類に「G/標準”年”」を入力。
月を表示
セルA2には、ドロップダウンで月を選択できるようにします。
セルA2を選択した状態で、データタブのデータツールから「データの入力規則」を選択。
下の画像のように入力して「OK」。
ドロップダウンから「5」を選択する。
西暦同様、書式設定で「G/標準”月”」とする。
曜日を表示
セルA4に”日”、B4に”月”と入力し、セルA4B4を選択した状態で、カーソルを合わせると右下に現れる”+”をセルG4まで引っ張ると曜日が、”土”まで入力されます。
カレンダーの最初の日付を調べる
カレンダーの始まりが、1日とは限らないのがミソなので、まずは最初の週、つまり5月1日がある週の日曜日が何日なのかを求める。
セルA5に「=DATE($A$1,A2,1)-(WEEKDAY(DATE($A$1,A2,1),1)-1)」と入力。
DATE($A$1,A2,1)で、2020/5/1のシリアル値を求めます。DATE(西暦,月,日) (シリアル値は43952)
WEEKDAY(DATE($A$1,A2,1),1)で、2020/5/1に対応する曜日を1~7の整数で求めています。WEEKDAY(DATE(西暦,月,日),種類) ※WEEKDAY 関数 – Office サポート
求めたシリアル値-(曜日の整数-1)※5月1日は金曜日なので、整数”6”が返るので、そこから”1”引いた数戻ると日曜日の日付になる。(シリアル値43952-(6-1))
日曜日の日付は4月26日(シリアル値43947)。
※セル番地を一部固定($)していますが、後々他の月を作る場合にコピーするためですので、今の段階ではお気になさらずに。
※この段階では、「2020/4/26」と表示されます。後々、表示を整えます。
ここまで出来たら、とりあえずのカレンダー表示はできたようなもの。
隣のセルの日付を求める
セルB5に「=A5+1」と入力。
4月26日に1日プラスしました。
入力したB5をクリックし、セルの右下にカーソルを合わせると現れる”+”をクリックしながら、セルG5までずいッと引っ張ります。
土曜日までの日付が表示されます。
次の週の最初の日付を表示
セルA6に「=G5+1」と入力。
その週の土曜日までの日付を表示
セルB6に「=A6+1」と入力。
カーソルを合わせて、またずいッと土曜日まで引っ張る。
(このあたりは、色々手順ややり方があると思いますがよしなに)
その他の日付を表示させる
セルA6~セルG6を選択した状態で、右端の”+”を下方向に引っ張って、月の最終週まで表示させる。
見た目を整える
セルA5G10を選択した状態で、「セルの書式設定(Ctr+1)」を表示し、表示形式タブで「ユーザー定義」を選択し種類に「d」を入力。
これで、「日」のみ表示されました。
文字の大きさや配置などは適宜調整。
該当月以外の日は、文字色を薄く
条件付き書式を使用します。
セルA5~G10を選択した状態で、ホームタブの「条件付き書式」→「新しいルール」→「数式を使用して、書式設定するセルを決定」。
「次の数式を満たす場合に値を書式設定」に「=MONTH(A5)<>$A$2」と入力。
「書式」をクリックして、文字色を薄めのグレーに設定(お好みで)。
まとめ
以上で、最上部のカレンダーのひと月分(5月)はできるはず。
さ~あ、ここからが難題。
果たしてたどり着けるのか?
いつになることやら・・・
スポンサー
ニュースレターを購読する