祝日や振替休日の日付を計算で求めて、そのデータを基に条件付き書式を使用して、祝日や振替休日の日の文字の色を自動的に赤色に変更する方法です。
但し、春分の日と秋分の日の日付に関しては、国立天文台が天体観測を行って得た地球の軌道や地軸の傾き等のデータを基にして、閣議によって決定されるものであり、それらの天体観測のデータは多数の惑星と太陽の重力的な相互作用によって変動するため、その様な値を求める事は方程式を使って行う事は出来ず、Excelの関数を使って求めようとしましても、どうしても日付にずれが生じてしまう年が出て来ますので、春分の日と秋分の日に関してだけは日本政府が発表した日付を手作業によって入力する必要があります。
尚、翌年の春分の日や秋分の日の日付を確認する際には、次のURLのページを参考にされると良いと思います。
【参考URL】
国立天文台 > 日の出・日の入り情報(暦) > 暦計算室 > 暦要項
http://eco.mtk.nao.ac.jp/koyomi/yoko/
それと、祝日の決め方が現在の方式になったのは2007年からであり、2006年以前には祝日の決め方が現在とは異なっていますので、以下の方法で祝日や振替休日を求める事が出来るのは、2007年以降の年に関してのみである事を御断り致しておきます。
まず、「休日」というシート名のシートを新たに作成して下さい。
次に、休日シートのA1セルに次の関数を入力して下さい。
=CalendarYear
次に、休日シートのA2セルに「体育」と入力して下さい。
次に、休日シートのB2セルに次の関数を入力して下さい。
=IF(ISNUMBER(($A$1&"/1/1")/($A$1>2006)),DATE($A$1,10,14-WEEKDAY(DATE($A$1,10,0),3)),"")
次に、休日シートのA3セルに「文化」と入力して下さい。
次に、休日シートのB3セルに次の関数を入力して下さい。
=IF(ISNUMBER(($A$1&"/1/1")/($A$1>2006)),DATE($A$1,11,3),"")
次に、休日シートのA4セルに「振替」と入力して下さい。
次に、休日シートのB4セルに次の関数を入力して下さい。
=IF(ISNUMBER(1/(WEEKDAY(B3)=1)),B3+1,"")
次に、休日シートのA5セルに「勤労」と入力して下さい。
次に、休日シートのB5セルに次の関数を入力して下さい。
=IF(ISNUMBER(($A$1&"/1/1")/($A$1>2006)),DATE($A$1,11,23),"")
次に、休日シートのA6セルに「天皇」と入力して下さい。
次に、休日シートのB6セルに次の関数を入力して下さい。
=IF(ISNUMBER(($A$1&"/1/1")/($A$1>2006)),DATE($A$1,12,23),"")
次に、休日シートのA7セルに「振替」と入力して下さい。
次に、休日シートのB7セルに次の関数を入力して下さい。
=IF(ISNUMBER(1/(WEEKDAY(B6)=1)),B6+1,"")
次に、休日シートのA8セルに「元旦」と入力して下さい。
次に、休日シートのB8セルに次の関数を入力して下さい。
=IF(ISNUMBER(($A$1+1&"/1/1")/($A$1>2006)),DATE($A$1+1,1,1),"")
次に、休日シートのA9セルに「振替」と入力して下さい。
次に、休日シートのB9セルに次の関数を入力して下さい。
=IF(ISNUMBER(1/(WEEKDAY(B8)=1)),B8+1,"")
次に、休日シートのA10セルに「成人」と入力して下さい。
次に、休日シートのB10セルに次の関数を入力して下さい。
=IF(ISNUMBER(($A$1+1&"/1/1")/($A$1>2006)),DATE($A$1+1,1,14-WEEKDAY(DATE($A$1+1,1,0),3)),"")
次に、休日シートのA11セルに「建国」と入力して下さい。
次に、休日シートのB11セルに次の関数を入力して下さい。
=IF(ISNUMBER(($A$1+1&"/1/1")/($A$1>2006)),DATE($A$1+1,2,11),"")
次に、休日シートのA12セルに「振替」と入力して下さい。
次に、休日シートのB12セルに次の関数を入力して下さい。
=IF(ISNUMBER(1/(WEEKDAY(B11)=1)),B11+1,"")
次に、休日シートのA13セルに「春分」と入力して下さい。
次に、休日シートのB13セルに次の関数を入力して下さい。
=IF(ISNUMBER(($A$1+1&"/1/1")/($A$1>2006)),IF(COUNTIF($D:$D,">"&$A$1+1&"/3/18")-COUNTIF($D:$D,">"&$A$1+1&"/3/23"),IF(LARGE($D:$D,COUNTIF($D:$D,">"&$A$1+1&"/3/18"))=LARGE($D:$D,COUNTIF($D:$D,">"&$A$1+1&"/3/23")+1),LARGE($D:$D,COUNTIF($D:$D,">"&$A$1+1&"/3/18")),"候補が複数あり"),"該当日未入力"),"")
次に、休日シートのA14セルに「振替」と入力して下さい。
次に、休日シートのB14セルに次の関数を入力して下さい。
=IF(ISNUMBER(1/(WEEKDAY(B13)=1)),B13+1,"")
次に、休日シートのA15セルに「昭和」と入力して下さい。
次に、休日シートのB15セルに次の関数を入力して下さい。
=IF(ISNUMBER(($A$1+1&"/1/1")/($A$1>2006)),DATE($A$1+1,4,29),"")
次に、休日シートのA16セルに「振替」と入力して下さい。
次に、休日シートのB16セルに次の関数を入力して下さい。
=IF(ISNUMBER(1/(WEEKDAY(B15)=1)),B15+1,"")
次に、休日シートのA17セルに「憲法」と入力して下さい。
次に、休日シートのB17セルに次の関数を入力して下さい。
=IF(ISNUMBER(($A$1+1&"/1/1")/($A$1>2006)),DATE($A$1+1,5,3),"")
次に、休日シートのA18セルに「みどり」と入力して下さい。
次に、休日シートのB18セルに次の関数を入力して下さい。
=IF(ISNUMBER(($A$1+1&"/1/1")/($A$1>2006)),DATE($A$1+1,5,4),"")
次に、休日シートのA19セルに「こども」と入力して下さい。
次に、休日シートのB19セルに次の関数を入力して下さい。
=IF(ISNUMBER(($A$1+1&"/1/1")/($A$1>2006)),DATE($A$1+1,5,5),"")
次に、休日シートのA20セルに「振替」と入力して下さい。
次に、休日シートのB20セルに次の関数を入力して下さい。
=IF(AND(ISNUMBER(1/(WEEKDAY(B19)<4)),ISNUMBER(B19)),B19+1,"")
次に、休日シートのA21セルに「海」と入力して下さい。
次に、休日シートのB21セルに次の関数を入力して下さい。
=IF(ISNUMBER(($A$1+1&"/1/1")/($A$1>2006)),DATE($A$1+1,7,21-WEEKDAY(DATE($A$1+1,7,0),3)),"")
次に、休日シートのA22セルに「敬老」と入力して下さい。
次に、休日シートのB22セルに次の関数を入力して下さい。
=IF(ISNUMBER(($A$1+1&"/1/1")/($A$1>2006)),DATE($A$1+1,9,21-WEEKDAY(DATE($A$1+1,9,0),3)),"")
次に、休日シートのA23セルに「国民」と入力して下さい。
次に、休日シートのB23セルに次の関数を入力して下さい。
=IF(ISNUMBER(1/(B24=B22+2)),B22+1,"")
次に、休日シートのA24セルに「秋分」と入力して下さい。
次に、休日シートのB24セルに次の関数を入力して下さい。
=IF(ISNUMBER(($A$1+1&"/1/1")/($A$1>2006)),IF(COUNTIF($E:$E,">"&$A$1+1&"/9/21")-COUNTIF($E:$E,">"&$A$1+1&"/9/25"),IF(LARGE($E:$E,COUNTIF($E:$E,">"&$A$1+1&"/9/21"))=LARGE($E:$E,COUNTIF($E:$E,">"&$A$1+1&"/9/25")+1),LARGE($E:$E,COUNTIF($E:$E,">"&$A$1+1&"/9/21")),"候補が複数あり"),"該当日未入力"),"")
※そろそろ、このサイトの回答欄に入力可能な文字数の制限を超えそうですので、残りはまた後で投稿させて頂きます。
お礼
ROW関数とは何ぞや?と思って調べてみたものの、間違った解釈をしていたようです^^; 詳しく説明ありがとうございます。 さて、教えて頂いた数式を早速貼ってみました。 お見事でございました!!! もっと早く質問すべきでした。 実は、ダウンロードしたテンプレートは月曜始まりでして、これを日曜始まりにするために 地道なことをしてまして・・・ もう自力で会計年度用カレンダーを完成させる余力が残ってませんでした。 使いやすく快適なカレンダーになりました。ありがとうございました!! 余談で頂いた祝日の色を変える方法、もしお時間が許すようでしたら教えて頂けますか? 経理担当なので、金融機関の休業日の間違いは命とりですので、それができると有難いです。 年中無休の会社ですので、社内カレンダーの休日は今のところはないです。 excelのバージョンは2007です。お時間のある時で構いませんのでよろしくお願い致します。