>スゴイです!
>会社の方も『凄い、凄い』と感動していました。
>本当に感謝です。ありがとうございました!
感謝して頂いた上に、感動までして頂けるとは光栄に存じます。
後から気づいた事なのですが、ついでに祝祭日や振替休日の日等の場合も、文字色を赤色で表示させる様にされた方が、より便利になるのではないでしょうか?
B2セルに入力されている年月の情報を利用して、別シート上にその年の祝祭日と振替休日の一覧表を自動的に作成し、その一覧表のデータを基にして、条件付き書式によって、祝祭日と振替休日の日の色を変えるという方法です。
但し、春分の日と秋分の日の日付に関しては、国立天文台が天体観測を行って得た地球の軌道や地軸の傾き等のデータを基にして、閣議によって決定されるものであり、それらの天体観測のデータは多数の惑星と太陽の重力的な相互作用によって変動するため、その様な値を求める事は方程式を使って行う事は出来ず、Excelの関数を使って求めようとしましても、どうしても日付にずれが生じてしまう年が出て来ますので、春分の日と秋分の日に関してだけは日本政府が発表した日付を手作業によって入力する必要があります。
それと、祝日の決め方が現在の方式になったのは2007年からであり、2006年以前には祝日の決め方が現在とは異なっていますので、以下の方法で祝日や振替休日を求める事が出来るのは、2007年以降の年に関してのみである事を御断り致しておきます。
【参考URL】
質問No.8328382 売上を平日、土日、祝 重複を避けたい【OKWave】
http://okwave.jp/qa/q8328382.html
今仮に、カレンダーが作成されているシートのシート名が「Sheet1」であるものとします。
まず「休日」という名称のシートを作成して下さい。
次に、休日シートのA1セルに次の関数を入力して下さい。
=IF(ISNUMBER(1/(YEAR((TEXT(Sheet1!$B$2,"yyyy年m月")&"1日")+0)>2006)),YEAR((TEXT(Sheet1!$B$2,"yyyy年m月")&"1日")+0),"")
次に、休日シートのA2セルに「元旦」と入力して下さい。
次に、休日シートのB2セルに次の関数を入力して下さい。
=IF(ISNUMBER($A$1),DATE($A$1,1,1),"")
次に、休日シートのA3セルに「振替」と入力して下さい。
次に、休日シートのB3セルに次の関数を入力して下さい。
=IF(ISNUMBER(1/(WEEKDAY(B2)=1)),B2+1,"")
次に、休日シートのA4セルに「成人」と入力して下さい。
次に、休日シートのB4セルに次の関数を入力して下さい。
=IF(ISNUMBER($A$1),DATE($A$1,1,14-WEEKDAY(DATE($A$1,1,0),3)),"")
次に、休日シートのA5セルに「建国」と入力して下さい。
次に、休日シートのB5セルに次の関数を入力して下さい。
=IF(ISNUMBER($A$1),DATE($A$1,2,11),"")
次に、休日シートのA6セルに「振替」と入力して下さい。
次に、休日シートのB6セルに次の関数を入力して下さい。
=IF(ISNUMBER(1/(WEEKDAY(B5)=1)),B5+1,"")
次に、休日シートのA7セルに「春分」と入力して下さい。
次に、休日シートのA8セルに「振替」と入力して下さい。
次に、休日シートのB8セルに次の関数を入力して下さい。
=IF(ISNUMBER(1/(WEEKDAY(B7)=1)),B7+1,"")
次に、休日シートのA9セルに「昭和」と入力して下さい。
次に、休日シートのB9セルに次の関数を入力して下さい。
=IF(ISNUMBER($A$1),DATE($A$1,4,29),"")
次に、休日シートのA10セルに「振替」と入力して下さい。
次に、休日シートのB10セルに次の関数を入力して下さい。
=IF(ISNUMBER(1/(WEEKDAY(B9)=1)),B9+1,"")
次に、休日シートのA11セルに「憲法」と入力して下さい。
次に、休日シートのB11セルに次の関数を入力して下さい。
=IF(ISNUMBER($A$1),DATE($A$1,5,3),"")
次に、休日シートのA12セルに「みどり」と入力して下さい。
次に、休日シートのB12セルに次の関数を入力して下さい。
=IF(ISNUMBER($A$1),DATE($A$1,5,4),"")
次に、休日シートのA13セルに「こども」と入力して下さい。
次に、休日シートのB13セルに次の関数を入力して下さい。
=IF(ISNUMBER($A$1),DATE($A$1,5,5),"")
次に、休日シートのA14セルに「振替」と入力して下さい。
次に、休日シートのB14セルに次の関数を入力して下さい。
=IF(AND(ISNUMBER(1/(WEEKDAY(B13)<4)),ISNUMBER(B13)),B13+1,"")
次に、休日シートのA15セルに「海」と入力して下さい。
次に、休日シートのB15セルに次の関数を入力して下さい。
=IF(ISNUMBER($A$1),DATE($A$1,7,21-WEEKDAY(DATE($A$1,7,0),3)),"")
次に、休日シートのA16セルに「敬老」と入力して下さい。
次に、休日シートのB16セルに次の関数を入力して下さい。
=IF(ISNUMBER($A$1),DATE($A$1,9,21-WEEKDAY(DATE($A$1,9,0),3)),"")
次に、休日シートのA17セルに「国民」と入力して下さい。
次に、休日シートのB17セルに次の関数を入力して下さい。
=IF(ISNUMBER(1/(B18=B16+2)),B16+1,"")
次に、休日シートのA18セルに「秋分」と入力して下さい。
次に、休日シートのA19セルに「振替」と入力して下さい。
次に、休日シートのB19セルに次の関数を入力して下さい。
=IF(ISNUMBER(1/(WEEKDAY(B18)=1)),B18+1,"")
次に、休日シートのA20セルに「体育」と入力して下さい。
次に、休日シートのB20セルに次の関数を入力して下さい。
=IF(ISNUMBER($A$1),DATE($A$1,10,14-WEEKDAY(DATE($A$1,10,0),3)),"")
次に、休日シートのA21セルに「文化」と入力して下さい。
次に、休日シートのB21セルに次の関数を入力して下さい。
=IF(ISNUMBER($A$1),DATE($A$1,11,3),"")
次に、休日シートのA22セルに「振替」と入力して下さい。
次に、休日シートのB22セルに次の関数を入力して下さい。
=IF(ISNUMBER(1/(WEEKDAY(B21)=1)),B21+1,"")
次に、休日シートのA23セルに「勤労」と入力して下さい。
次に、休日シートのB23セルに次の関数を入力して下さい。
=IF(ISNUMBER($A$1),DATE($A$1,11,23),"")
次に、休日シートのA24セルに「天皇」と入力して下さい。
次に、休日シートのB24セルに次の関数を入力して下さい。
=IF(ISNUMBER($A$1),DATE($A$1,12,23),"")
次に、休日シートのA25セルに「振替」と入力して下さい。
次に、休日シートのB25セルに次の関数を入力して下さい。
=IF(ISNUMBER(1/(WEEKDAY(B24)=1)),B24+1,"")
次に、休日シートのD1セルに「社定休日」等と入力して下さい。
※まだ途中なのですが、サイトの回答欄に入力可能な文字数制限を超えてしまいますので、残りは次の回答で行わせて頂きます。
お礼
回答ありがとうございます。 また、返事が遅くなって申し訳ありません。 スゴイです! 始め見たときは『え?理解できるかな?』と とりあえずベタ打ちし、あとからじっくり あぁなるから…ここが…と、勉強させていただきました。 会社の方も『凄い、凄い』と感動していました。 本当に感謝です。ありがとうございました! ※皆様にベストアンサーを差し上げたいのですが 会社の方がこのやり方で。と選んだkagakusuki様を ベストアンサーに選ばさせていただきました。