- ベストアンサー
EXCEL条件付き書式でカレンダーを作成し、祝日を表示する方法
- EXCELでカレンダーを作成し、祝日を表示する方法について解説します。年数を入力すると自動で祝日が表示される関数を作成し、条件付き書式を使って休日の文字色を変更します。
- 問題として、名前を付けることでブック単位になり、同じ年の祝日しか表示されなくなることがあります。一方、シート毎に名前を付けると条件付き書式が登録できなくなります。この問題に対する解決方法をご教授ください。
- また、EXCELでのカレンダー作成には特定のサイトを参考にすることをおすすめします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
元のご相談: >年数を入力したら、自動で祝日が表示される関数を作成し、 (中略) >条件付き書式に登録して休日の文字色変更は出来ました。 >コレを原紙としてブック内でコピーしていきたいのです。 という前提でご質問が始まっていましたので,つまりあなたはご自分のエクセルで >コピー1に2011年と入力 → >コピー1内の祝日リストが2011年の物になる この部分は既に実現できているということですね。 追加ご質問: >原紙で作ったシートをコピーして使い回して行きたいので 何をどこに作ってあって,一体何をコピーしたいのか,アナタのブックの構成のご説明が不明瞭なので,お話が見えなくなっています。 解決策1:(最も簡単。推奨) 祝日一覧と条件付き書式の表を「同じシートの中に」作成しておく 祝日一覧のセル範囲に「祝日」と名前を定義しておく 祝日一覧は,所定のセルに年を記入すると自動でその年の祝日を計算する 条件付き書式は =COUNTIF(祝日,B3) としておく 以上の段取りで「シートを複写する」と,条件付き書式は「自分のシート内の祝日」を参照します。 解決策2:(推奨) 祝日一覧や条件付き書式は自由に作成する シートではなく「ブックを複写」する 以上の段取りで,コピーブック1は今年を記入し,今年の計算をさせ,今年の休日に色が付きます。 コピーブック2は来年を記入し,来年を計算させ,来年の休日に色が付きます。 解決策3:(あまり推奨ではない) 祝日のシートを独立に作成する 祝日のセル範囲に「祝日」と名前を定義する 祝日のシートを複写し2011年を計算させたら,シート名を「祝日一覧2011年」と書き換える 祝日シートを別に複写し2012年を計算させたら,シート名を「祝日一覧2012年」と書き換える 条件付き書式は =COUNTIF(INDIRECT(TEXT(B3,"祝日一覧yyyy年!!祝日")),B3) とする 解決策4:(最も簡単) 祝日シートのB1に2011と記入し,A1からA17に2011年の祝日を計算させる A1:B17をコピーしてA18に貼り付け,B18には =B1+1 と記入する A18:B34をコピーし,下向けに10年分ほど貼り付ける A列に「祝日」と名前を定義する。 条件付き書式は =COUNTIF(祝日,A3) とする。
その他の回答 (2)
- mshr1962
- ベストアンサー率39% (7417/18945)
祝日を年単位で計算する方法もあります。 http://www.geocities.jp/chiquilin_site/data/080307_holiday.html
お礼
回答、ありがとうございます。 説明不足で申し訳ありません。 このサイトと似たような感じで、予め関数を入力して 年の値を入力するだけで、その年の祝日リストが完成するようにつくっております。 そして、それを利用して質問のような何度でも利用可能なカレンダーの原紙を作りたいと思っている次第です。
- keithin
- ベストアンサー率66% (5278/7941)
解決策1 「祝日」シートには,「今年の祝日」を例えばA1からA17に並べたら,「来年の祝日」を続けてA18からA34に並べ,ついでに「再来年の祝日」もA35からA51に並べます A列全体を列選択し,「祝日一覧」と名前を定義します。 条件付き書式の数式は =COUNTIF(祝日一覧,B3) などのようにしておきます。 #余談ですが,祝祭日だけでなく,たとえば年末年始やゴールデンウィークなどの「会社の休業日」も同じく祝日一覧に付け加えておくと良いかもしれませんね。 解決策2 >普通に名前を付けるとブック単位になるので、同じ年の祝日しか見なくなり、 正直何が問題なのかちょっと判りにくいのですが。 仮に「2011年の祝日一覧」のセル範囲には「祝日2011」と名前を付け,「2012年の祝日一覧」には「祝日2012」と名前を付けておけば 条件付き書式の数式は =COUNTIF(INDIRECT("祝日"&YEAR(B3)),B3) などのようにすることで,祝日2011や祝日2012などを使い分けることもできます。
お礼
回答ありがとうございます。 こちらの説明不足だったようで申し訳ないです。 原紙で作ったシートをコピーして使い回して行きたいので 年数を入力すれば、一つの祝日リストで対応出来るようにしたかったのです。 ex: 原紙からコピー。 → コピー1に2011年と入力 → コピー1内の祝日リストが2011年の物になる → コピー1の条件付き書式は2011年の祝日を参照する → 原紙からコピー。 → コピー2に2012年と入力 → コピー2内の祝日リストが2012年の物になる → コピー2の条件付き書式は2012年の祝日を参照する 解決策1の未来の祝日リストも考えたのですが、 何時までも(永遠には無理ですが)使えるモノにしたいと思い質問した次第です。 解決策2の方法が何か正解に近づいてる気がするのですが…… 未来のリストを作らずに済む方法があればご教授よろしくお願いします。
お礼
回答ありがとうございます。 解決策1と同じ事をしていたのですが質問のように、sheet1を原紙として コピーしたシートはsheet1の祝日一覧を参照しているようで困っていました。 ネットで調べたところ、 「"名前を付ける"はブック単位で"sheet1!祝日"と 名付ければ別シートに同じ名前を付けられる」という記事を読み、 その解決策は無いか。と質問した次第でした。 本日改めて1から作り直し、解決策1と同じ方法を採用したところ 期待通りの結果が得られました。 やっている事は同じはずなのに、昨日作ったファイルは何故か正しい結果が得られませんでした。 原因は分かりませんが、とりあえず本日作成したファイルを使っていこうと思います。 ありがとうございました。