記事 か 日記 かは・・・??
(ただ単に、自分の備忘録かも・・・)
休日設定 [EXCEL]
先の日記では、祝日の設定を書きました。
で、今回は休日の設定です。
休日は基本的に
1)祝日が日曜に当たった場合その日以降で直近の平日を休日にする。(振替休日)
2)その日の前後の日が祝日の場合、その日を休日にする。(国民の休日)
の、2種類があります。
1)については、GWの祝日3連休以外では基本的に月曜になります。
と言う事は、ハッピーマンデー以外の祝日が日曜かどうかを調べれば、決定できます。
元旦の日を例に取れば、元旦が日曜なら、翌1月2日を振替休日にすればOK
=IF(WEEKDAY(DATE($A$1,1,1))=1,DATE($A$1,1,2),0)
まあ、これで元旦が日曜なら1月2日も設定されます。日曜以外なら0にしています。
同じように、日付固定の祝日と、春分・秋分の日について設定すれば大丈夫でしょう。
(振替休日にならない時、0にするのなら、=DATE($A$1,1,2)*(WEEKDAY(DATE($A$1,1,1))=1)でも、同じ事になります。)
後は、5月のGWですが、これもちょっと見方を変えれば、5月6日が、月曜~水曜であれば、
振替休日になります。ですので、
=IF(WEEKDAY(DATE($A$1,5,6),2)<4,DATE($A$1,5,6),0)
又は、=DATE($A$1,5,6)*(WEEKDAY(DATE($A$1,5,6),2)<4)でも。
2)は、ちょっと厄介かも。
現行の祝日で、このように祝日と次の祝日の間が1日になるのは、9月の敬老の日と秋分の日しかありません。
更に、共に変動する祝日になります。
ですので、毎年これが発生するわけではありません。来年2009年は、敬老の日と、秋分の日の間が1日になりますので、祝日法改正後初の適用になります。
では、どのように確認するのか?
敬老の日は、いわゆるハッピーマンデーです。ですので、秋分の日が水曜でなければなりません。
又、同時にその秋分の日が属する週の月曜日が9月の第3月曜日で無ければなりません。
これを数式にすると、
=IF(AND(WEEKDAY(DATE(A1,9,INT(23.2488+0.242194*(A1-1980)-INT((A1-1980)/4))))=4,
DATE(A1,9,INT (23.2488+0.242194*(A1-1980)-INT((A1-1980)/4)))-WEEKDAY(DATE(A1,9,INT(23.2488+0.242194*(A1-1980)-INT((A1-1980)/4))),3)=DATE(A1,9,1)-WEEKDAY(DATE(A1,9,1),3)+7*(3-(WEEKDAY(DATE(A1,9,1))=2))),DATE(A1,9,INT(23.2488+0.242194*(A1-1980)-INT((A1-1980)/4)))-1,0)
オレンジ秋分の日 赤 敬老の日
と言う事になります。
まあ、それぞれの日付は、別セルで出しているでしょうから、そのセルを指定すれば短くなりますが。
ただ、計算上は当面の間は秋分の日が23日の水曜日の場合、22日が国民の休日になるようです。
2032年に9月20・21・22と、なりそうです。(あくまでも計算上)
ですので、国民の休日判定の式も、
=IF(AND(INT(23.2488+0.242194*(A1-1980)-INT((A1-1980)/4))=23,
WEEKDAY(DATE(A1,9,INT(23.2488+0.242194*(A1-1980)-INT((A1-1980)/4))))=4),DATE(A1,9,22),0)
で、いいのかな・・
祝日・休日の設定をリスト形式で入力しておけば、
後は年を指定するだけで、祝日は計算できると思います。
(一応、祝日リストとしてZ2:AB26までの範囲を設定すれば、カレンダー上に祝日を赤にするなどは簡単に出来ると思います。)
で、今回は休日の設定です。
休日は基本的に
1)祝日が日曜に当たった場合その日以降で直近の平日を休日にする。(振替休日)
2)その日の前後の日が祝日の場合、その日を休日にする。(国民の休日)
の、2種類があります。
1)については、GWの祝日3連休以外では基本的に月曜になります。
と言う事は、ハッピーマンデー以外の祝日が日曜かどうかを調べれば、決定できます。
元旦の日を例に取れば、元旦が日曜なら、翌1月2日を振替休日にすればOK
=IF(WEEKDAY(DATE($A$1,1,1))=1,DATE($A$1,1,2),0)
まあ、これで元旦が日曜なら1月2日も設定されます。日曜以外なら0にしています。
同じように、日付固定の祝日と、春分・秋分の日について設定すれば大丈夫でしょう。
(振替休日にならない時、0にするのなら、=DATE($A$1,1,2)*(WEEKDAY(DATE($A$1,1,1))=1)でも、同じ事になります。)
後は、5月のGWですが、これもちょっと見方を変えれば、5月6日が、月曜~水曜であれば、
振替休日になります。ですので、
=IF(WEEKDAY(DATE($A$1,5,6),2)<4,DATE($A$1,5,6),0)
又は、=DATE($A$1,5,6)*(WEEKDAY(DATE($A$1,5,6),2)<4)でも。
2)は、ちょっと厄介かも。
現行の祝日で、このように祝日と次の祝日の間が1日になるのは、9月の敬老の日と秋分の日しかありません。
更に、共に変動する祝日になります。
ですので、毎年これが発生するわけではありません。来年2009年は、敬老の日と、秋分の日の間が1日になりますので、祝日法改正後初の適用になります。
では、どのように確認するのか?
敬老の日は、いわゆるハッピーマンデーです。ですので、秋分の日が水曜でなければなりません。
又、同時にその秋分の日が属する週の月曜日が9月の第3月曜日で無ければなりません。
これを数式にすると、
=IF(AND(WEEKDAY(DATE(A1,9,INT(23.2488+0.242194*(A1-1980)-INT((A1-1980)/4))))=4,
DATE(A1,9,INT (23.2488+0.242194*(A1-1980)-INT((A1-1980)/4)))-WEEKDAY(DATE(A1,9,INT(23.2488+0.242194*(A1-1980)-INT((A1-1980)/4))),3)=DATE(A1,9,1)-WEEKDAY(DATE(A1,9,1),3)+7*(3-(WEEKDAY(DATE(A1,9,1))=2))),DATE(A1,9,INT(23.2488+0.242194*(A1-1980)-INT((A1-1980)/4)))-1,0)
オレンジ秋分の日 赤 敬老の日
と言う事になります。
まあ、それぞれの日付は、別セルで出しているでしょうから、そのセルを指定すれば短くなりますが。
ただ、計算上は当面の間は秋分の日が23日の水曜日の場合、22日が国民の休日になるようです。
2032年に9月20・21・22と、なりそうです。(あくまでも計算上)
ですので、国民の休日判定の式も、
=IF(AND(INT(23.2488+0.242194*(A1-1980)-INT((A1-1980)/4))=23,
WEEKDAY(DATE(A1,9,INT(23.2488+0.242194*(A1-1980)-INT((A1-1980)/4))))=4),DATE(A1,9,22),0)
で、いいのかな・・
祝日・休日の設定をリスト形式で入力しておけば、
後は年を指定するだけで、祝日は計算できると思います。
(一応、祝日リストとしてZ2:AB26までの範囲を設定すれば、カレンダー上に祝日を赤にするなどは簡単に出来ると思います。)
コメント 0