SSブログ
 記事 か 日記 かは・・・?? (ただ単に、自分の備忘録かも・・・)

休日設定 [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)
 で、いいのかな・・

SSS.JPG

祝日・休日の設定をリスト形式で入力しておけば、
後は年を指定するだけで、祝日は計算できると思います。
(一応、祝日リストとしてZ2:AB26までの範囲を設定すれば、カレンダー上に祝日を赤にするなどは簡単に出来ると思います。)


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。