休日の話も(3)となりました。
今回は祝日の自動設定の考え方について整理します。
◆こんな時
祝日を自動設定したい。
◆解決ポイント
祝日の特徴を整理して式を作ります。
◆解決策
先ず整理してみましょう。
祝日の中には以下のように、日が固定のものと曜日が固定のものがあります。
・日が固定のもの:
元旦、建国記念の日、春分の日、昭和の日、憲法記念日、みどりの日、
こどもの日、山の日、秋分の日、文化の日、勤労感謝の日、天皇誕生日
・曜日が固定のもの:(ハッピーマンデー)
第二月曜日:成人の日、体育の日
第三月曜日:海の日、敬老の日
ここでわかることは、現在では曜日が固定(月曜日)の祝日は振替休日の対象になりませんね。
そして日が固定の祝日は日曜日に重なったときは振替休日となります。
このことから考え方としては各祝日の基準日を設定し、基準日の曜日を判断する手順になります。
・基準日の設定
日が固定の祝日は当然その日が基準日となります。
曜日が固定の祝日は最短で迎える日にちを基準日とします。
⇒第二月曜日の場合は8日、第三月曜日は15日を基準日とします。
さて算定式ですが、日にちが固定の祝日は日曜日に当たるかを、月曜日が固定の祝日は月曜日に当たるかを見ることになりますので以下で式を組み立てます。
・算定式
(日にち固定)
元旦を例にとると、基準日2017/1/1をセルA1に入力し、セルB1にWEEKDAY
(A1,2)と入力することで曜日が分かります。
*ここでは月曜日基準(第二引数=2)としてます。
この結果のセルB1が7(日曜日)なら次の日が振替休日となります。
ちょうど来年がこれに当たります。
次の日とは1月2日ですが、翌日と考えると日に1を加えた結果になります。
つまり、セルC1=A1+1とすることができます。
でも翌日にするのは7のときだけなのでIF関数を使って、C1=A1+
IF(B1=7,1,0)とできます。 セルC1が振替休日の日付となります。
(曜日固定)
月曜日固定の祝日については、月曜日でない場合は次の月曜日を求めます。
成人の日を例にとると、基準日2017/2/8をセルA2に入力し上記同様にセルB2
で曜日を求めると日曜日に当たるので翌日の月曜日にするため1日を加えたい
ところですが、いつも翌日とは限りませんね。
火曜日の場合が最大6日の調整(加算)となることが分かります。
つまり、セルC2=A2+IF(B2<>1,8-B2,0)で次の月曜日が求まります。
これでそれぞれの祝日、振替休日が自動設定されます。
D列に日にち固定は7、曜日固定は1を入力してそのセル値を参照することで、’=’と’<>'以外は同じような式に整理することができます。
(下図参照:E列はC列に入力した式を表示してます)
なお、憲法記念日からの3祝日(ゴールデンウィーク)の振替休日対策としてセルC7とC8には補正の式を追加しています。
因みに今度5月3日が日曜日になるのは2020年、東京オリンピック・パラリンピックの年です。
また、春分の日と秋分の日は年によって日が変わります。
これをExcelで求める式がネットに公開されているので利用するといいでしょう。
更にこの表に年末年始や創立記念日などの休暇も追加しておくと漏れがなくなりますね。
年(西暦)を別のセルに置き、A列をA1=DATE(年のセル,1,1)などとすると管理し易くなります。しかしながら、今後休日の増減や曜日固定などの変動の可能性も踏まえ、毎年設定内容を確認するようにしてください。
◆「StiLL」ボタン機能の説明
「StiLL」ボタンの機能を使えば上記の表を照合するVLOOKUP関数などを明細行に設定する手間が省けます。省力化、ミスも防止で手間がかかりません。
「StiLL」体験セミナー(無料)を開催しておりますので是非ご自身で操作してその無限の可能性を実感してください。
これで休日シリーズ(?)を終わりにします。
また来週。
PR