こんにちは。
最近、友達が経営しているお店向けのシフト表を改善しています。
今日は、その中の基礎中の基礎!カレンダー管理における日付の自動設定について備忘録します。
特に月末日を把握し、月によってはそれ以降を空白にする…などの考慮も重要なポイントになってきます…💦
■ 動作環境
OS: Windows 8.1(64ビット)
Excel: 2013(32ビット)
■ 完成イメージ
カレンダー情報のマスターシートにて、指定された年月に応じて日付を自動的に表示する仕組みとしています。日付は、最大31日分を確保、ただし月に応じての凸凹は、空白で帳尻を合わせるようにしました。
■ 初日の自動設定
まずは月初めの日付を自動設定します。ここはスタート日=1と確定していますので、指定された年月と1日の情報からDATE関数で指定します。
加えて「セルの書式設定」で『d "日"』指定ですね!
ただし、これだと対象年月が指定されていない場合は、エラーになってしまうため、最低限のフォロー処理を入れておきます。
■ 2日目以降の自動設定
2日目以降は、1つ前の日にちに数字の『1』を足すだけです(笑)
2日目のセルには、次のとおり設定しました。
あとは2日に設定した内容をオートフィルするんですが、そうするとF34:F36(図の赤枠)はまた1日からスタートしちゃってます💦
中身がどうなっているかというと、指定された対象年月「2021/2」の次の月「2021/3」に移ってしまっていることが分ります(「セルの書式設定」をちょいっと変更しました)💦
■ 月末日の管理
次の月の日付になったら表示したくありませんよねー♪
そこで2日目以降は、指定された対象年月と同じか?毎回チェックする仕組みに変更します。(ほんとは月末の凸凹があり得る29日以降のみ考慮すれば良いのでしょーが、設定する式のバリエーションを増やしたくないので、2日目以降同様の式にします)
日付情報のうち月のみを照合したいので、MONTH関数を使います。
2日目のセルには、次のとおり設定しました。
本来設定する予定の式「$F6+1」の月部分が、対象年月で指定された月「$D$5」と一致しなかったら空っぽにします!
あとは最後のセルまでオートフィルすると次のとおりになります。
F35:F36がエラーになっているのは、前の日付(月末日管理の式が功を奏し、F34が空っぽに!!)が要因です。
そもそも1日目にて、対象年月が空っぽだったら…という式を埋め込んでいますので、2日目以降も前の日付が空っぽだったら…というロジックであるべきです。
よって、最終的に2日目以降は次のとおりとしました!
あとは最後のセルまでオートフィルしといてください。^^
■ まとめ
いかがでしたか?
シフト表で最も重要な軸、カレンダーの管理はこのような仕上げています。
既に備忘録済の祝日管理と組み合わせるとそれなりのカレンダーマスターが完成します♪
Comments