[[20070327141404]] 『カレンダーについて』(きくこま) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『カレンダーについて』(きくこま)

 いつもお世話になってます。以前こちらの過去ログを参考にしながら
 カレンダーを作成したました。

 シート1にカレンダー、シート2に祝日一覧があり、カレンダーに反映
 させています。
 土日は曜日のみ条件付書式設定で色をつけていますが、今回は日にちにも
 曜日と同じ色をつけたいと考えています。

 以前のように過去ログを参照にがんばってみたのですが、いまいちピンと
 こなくて詰まってしまいました・・・

   A B C D E F G H I
 1          2007年        4月
 2     土 日 月 火 水 木 金 土
 3   1   2   3  4  5  6  7  8  9  
 4 (   祝 日 が 反 映 す る 行)

 上記のようなカレンダーです。曜日は条件付書式設定で反映するのに、
 土日に当たる日にちは色が変わりません。どなたかご教授お願い致します。


 日付がシリアル値で入力されている場合限定です。
 B3セルに次のように条件付き書式を設定して下さい。

 条件1に
 「数式が」「=WEEKDAY(B3,2)=6」
 書式を土曜日に付けたい色に。

 条件2に
 「数式が」「=WEEKDAY(B3,2)=7」
 書式を日曜日に付けたい色に。

 設定後、他のセルへフィルドラッグ。

 以下追記です。
 別案で、曜日の列が必ずシートの2行目であり、
 且つ、曜日の表記が質問の例であること限定ですと、以下の通りでも。
 こちらは日付がシリアル値である必要はありません。

 条件1に
 「数式が」「=B$2="土"=TRUE」

 条件2に
 「数式が」「=B$2="日"=TRUE」

 (からあげ弁当)

 条件付書式設定で範囲も日付行もいれる
 数式の設定は いまいちピンとこなくて???
 内容次第で背設定方法も変わりますよ
((()))

 からあげ弁当さんありがとうございました♪
 早速実行してみたところ、しっかりと変更されました!

 ここでもう1つなんですが、祝祭日の曜日と日付の
 色も変更したいのですが、こちらもご指導していただけませんか?
 ちなみに祝日の名前(昭和の日とか振替休日など)は反映されます。

 >上記コメントしてくださった方には申し訳ありませんが、
 内容が理解できません 汗 上記の方のレベルに達していないので
 良ければ詳細をお願いします。
 (きくこま)


 >きくこまさん
 下記の点をご提示頂けますでしょうか?

 ・日付はシリアル値で入力されているか
 ・Sheet2の祝日一覧の配置
  (祝日が記入してあるセルはどこか?シリアル値か?)

 とりあえず、日付は全てシリアル値、祝日一覧はSheet2のA列にあると仮定した場合で。
 Sheet2のA列を選択してメニューバーの挿入(I)→名前(N)→定義(D)。
 名前の定義ダイアログで名前(W)に「祝日一覧」と入力。
 その際、参照範囲(R)が「=Sheet2!$A:$A」であることを確認。
 上記設定終了後に、Sheet1の日付があるセルの条件付き書式の条件3に以下のように追加。
 条件3
 「数式が」「=COUNTIF(祝日一覧,B3)=1」

 以上でどうでしょうか?

 ※誤記があったので訂正しました。すみませんm(_)m
 (からあげ弁当)


 シリアル値がよくわからないです・・・すみません 汗
 シート2の祝日一覧は、
     A     B     
 1   休日設定
 2  日付  祝日名
 3  日付  祝日名  
 4  日付  祝日名  
 となっています。

 >日付は全てシリアル値
 上記で述べましたがシリアル値とは何かがわからず・・・でも日付は関数で
 [=IF(MOD(DATE(C1,I1,1),7)=0,DATE(C1,I1,1)-MOD(DATE(C1,I1,1),7)+A3-7,DATE(C1,I1,1)-MOD(DATE(C1,I1,1),7)+A3)]
 と設定しています。

 現段階で土日の曜日と日付に色がついたと喜んでいたら、
 月を変更すると、土日には色がつかず、固定した場所でのみ
 色が反映されます。

 シリアル値かどうかはわかりませんが、曜日は
 =DATE(C1,I1,0)
 という関数を入力し、セルの書式設定→d にしています。

 ※17時以降ネットできないので明日返事いたします。
 (きくこま)


 >シリアル値
 今回は「2007/3/27」のような日付表記の意味で用いました。
 きくこまさんのご返答から、セルに入力されている値はシリアル値ではないことが解りました。

 もう少し教えて頂きたいのですが、
 ・私の最初の回答のどちらの案を採用されましたでしょうか?
 ・上記でご返答いただいた数式はB3のものだと推測しますが、
  C3やD3の日付のセルにはどのような数式が入っていますか?
 ・祝日の名前が反映されるセルにはどのような数式が入っていますか?
  (=VLOOKUP(C3,Sheet2!$A:$B,2,FALSE)のような感じでしょうか?)
 ・同じく祝日の名前が反映されるセルに、祝日名以外の予定を書き込むことはありますでしょうか? 

 ひとまず、ちょっとやっつけ仕事的回答で申し訳ありませんが、
 以下をお試し下さい。

 条件3に
 「数式が」「=B4<>""=TRUE」

 (からあげ弁当)

 もし数式等を変更してもよろしければ、下記のようにしていただくと、ご希望の表示になるかと思います。
 既存のカレンダーシートでは無く、新しく白紙のシートを追加してお試し下さい。

 1) Sheet2のA列の祝日の日付が入っている範囲を選択し、名前の定義で「祝日一覧」と定義する。
  (名前の定義の方法は、前述の回答をご参照下さい)
 ※以下は、新しく追加したシートで行ないます。
 2) C1に「2007」、I1に「5」と入力(4でも6でも構いません。月です。)
 3) B2に「=B3」と入力し、条件付き書式を以下のように設定。
   条件1「数式が」「=WEEKDAY(B2,2)=6」(土曜日の書式)
    条件2「数式が」「=WEEKDAY(B2,2)=7」(日曜日の書式)
    条件3「数式が」「=COUNTIF(祝日一覧,B2)=1」(祝日の書式)
 4) B2セルを選択してB3までフィルドラッグ
 5) B2セルの書式設定で分類(C)をユーザー定義、種類(T)を「aaa」に。 
 6) B3に「=A3+1」と入力し、セルの書式設定で分類(C)をユーザー定義、種類(T)を「d」に。
 7) B4に「=IF(ISERROR(VLOOKUP(B3,Sheet2!$A:$B,2,FALSE))=TRUE,"",(VLOOKUP(B3,Sheet2!$A:$B,2,FALSE)))」
 8) B2〜B4を選択して、必要な日付分右にフィルドラッグ。(質問例ではI列まで)
 9) B3に「=IF(MOD(DATE(C1,I1,1),7)=0,DATE(C1,I1,1)-MOD(DATE(C1,I1,1),7)-7,DATE(C1,I1,1)-MOD(DATE(C1,I1,1),7))」

 以上で、曜日と日付の色が変更されると思います。

 追記です。
 もしかしてI列で区切りとし、5行目以降もカレンダーが続いているとしたら、下記作業を追加して下さい。
 10)C2〜I4まで選択し、1週間分だけ下にフィルドラッグ(C5〜I7まで)
 11) C6に「=I3+1」と入力。
 12) C5〜I7を選択し、必要週分だけ下にフィルドラッグ。

 (からあげ弁当)

 [=IF(MOD(DATE(C1,I1,1),7)=0,DATE(C1,I1,1)-MOD(DATE(C1,I1,1),7)+A3-7,DATE(C1,I1,1)-MOD(DATE(C1,I1,1),7)+A3)]
  ↓
=DATE(C1,I1,1)+A3-(MOD(DATE(C1,I1,1)+6,7))-1
で言いと思いますが
A3の値がどう言うものか???
A3が固定なら曜日の列固定なると思いますが
((()))

 からあげ弁当さんありがとうございます!

 新しくシートを追加して上記でレクチャーしてくださった内容で奮闘しています。
 質問なのですが、例えばB3に『6)』と『9)』というように、複数の関数を入力
 するときはどうすればよいのでしょうか?
 いまB3のセルには『A2+1』という式が入っているので、そこにさらに関数を入力するので
 あれば、『A2+1+*********』というように続けていいのでしょうか?

 あと理解できなくて申し訳ないのですが、
 『 6) B3に「=A3+1」と入力』とは、なぜA3なのですか?空白のセルであればどこでも
 いいのでしょうか?

 >(())さんありがとうございます!

 どうお呼びすればいいかわからないお名前なので、お名前をコピーさせてもらいました 笑
 私はA3は空白にしています。『A3の値がどう言うものか???』というのは、からあげ弁当さん
 へのコメントでしょうか?
 私へのコメントでしたら・・・私も意味はよくわかっていないので、申し訳ありませんが、
 きちんとしたお答えはできません。。。

 (ままん)
 >


 >質問なのですが、例えばB3に『6)』と『9)』というように、複数の関数を入力
  するときはどうすればよいのでしょうか?

 解りづらかったですね(^^; ごめんなさいm(_)m
 B3セルには6)「=A3+1」を消して、9)の数式のみ入力する形になります。
 又、何故B3に「=A3+1」なのかというご質問ですが、
 ご提示させていただいた方法を1)から順に試していただく場合に、
 日付の部分の数式の入力の手間を省くため、一時的に入力してあります。
 B3を右にフィルドラッグして、C3の数式を「=B3+1」に、D3の数式を「=C3+1」・・・以下続く、となるはずです。

 (からあげ弁当)

 [=IF(MOD(DATE(C1,I1,1),7)=0,DATE(C1,I1,1)-MOD(DATE(C1,I1,1),7)+A3-7,DATE(C1,I1,1)-MOD(DATE(C1,I1,1),7)+A3)]
  ↓
=DATE(C1,I1,1)+A3-(MOD(DATE(C1,I1,1)+6,7))-1

 A3が空白で値をいれなきゃ下記でいいとおもいますよ。
 =DATE(C1,I1,1)-(MOD(DATE(C1,I1,1)+6,7))-1  土曜である日にちが出る

 で曜日列は月変更でも変わらない、よって土日の色は条件書式を使わなくても

 >6) B3に「=A3+1」と入力し、セルの書式設定で分類(C)をユーザー定義、種類(T)を「d」に。
 >9) B3に「=IF(MOD(DATE(C1,I1,1),7)=0,DATE(C1,I1,1)-MOD(DATE(C1,I1,1),7)-7,DATE(C1,I1,1)-MOD(DATE(C1,I1,1),7))」
 B3に2つの数式が???
C3にB3+1 右へコピー
 ((()))

 よって曜日は固定、 書式は(色)普通の書式設定で
 祝祭日は(からあげ弁当)さんの
 条件1
 「数式が」「=COUNTIF(祝日一覧,B3)」 でよいかと   =1は省いてもよろしい
 ((()))
2007/5 は 2007/4/28からスタートになりますね。


 からあげ弁当さん、(())さんありがとうございます!

 なぜか私のコメントが反映されていないので(削除された??)もう1度・・・

 >からあげ弁当さん
 『何故B3に「=A3+1」なのか』は理解できました!ご説明ありがとうございます♪
 ですが、
 『9) =IF(MOD(DATE(C1,I1,1),7)=0,DATE(C1,I1,1)-MOD(DATE(C1,I1,1),7)-7,DATE(C1,I1,1)-MOD(DATE(C1,I1,1),7))』
 こちらの式は私に理解できる域ではなかったので、最終的に(())さんの
 『=DATE(C1,I1,1)+A3-(MOD(DATE(C1,I1,1)+6,7))-1』
 を参考にさせていただきました。

 (())さんのご説明通り、曜日固定になってしまいましたが、毎月1日から表示させたい
 ときは、からあげ弁当さんの式を参考にさせてもらえばいいのでしょうか??

 毎回質問攻めで申し訳ありませんが、是非お答えお願い致します!
 (きくこま) ※名前修正済


 毎月1日のセル位置が固定なのか 
 (前月の表示は無く1日から始まるが曜日にあわせてずれる)か
 毎月1日のセル位置が固定ならば28日までは関数でなく直接入力しておく 1日=B3セル
 29、30、31日はその月に合わせて表示非表示を関数で
 曜日は =CHOOSE(MOD(DATE($C$1,$I$1,B$3),7),"日","月","火","水","木","金","土")
=B$2="日" 条件書式
もしくは =DATE($C$1,$I$1,B$3) 書式 aaa とか
=MOD(DATE($C$1,$I$1,B$3),7)=1 条件書式
((()))

  29日セル =IF(DAY(DATE($C$1,$I$1,AA3+3))<5,"",AC3+1)
 とし31日までコピー
   日にちセルは 書式 標準もしくは数値  ((()))


 お先に回答されてしまいましたが、せっかくなので投稿します(^^;

 >きくこまさん
 ひとまず、ご希望通りのカレンダーが出来上がったと想定してレスします。

 その前に、ここまでキチンとカレンダーのレイアウトを確認しないまま進めてしまい、
 きくこまさんのカレンダーとこちらの考えているカレンダーのセルの番地(B3とかA3とか)に
 食い違いがあったかなぁと、反省しております。
 私はB2から右に「土・日・月・・・土・日」、B3に日付が右にずらずらと。
 というレイアウトになっていると解釈しておりました。

 > 『9) =IF(MOD(DATE(C1,I1,1),7)=0,DATE(C1,I1,1)-MOD(DATE(C1,I1,1),7)-7,DATE(C1,I1,1)-MOD(DATE(C1,I1,1),7))』
 上記数式については、きくこまさんがご提示された
 > 上記で述べましたがシリアル値とは何かがわからず・・・でも日付は関数で
 > [=IF(MOD(DATE(C1,I1,1),7)=0,DATE(C1,I1,1)-MOD(DATE(C1,I1,1),7)+A3-7,DATE(C1,I1,1)-MOD(DATE(C1,I1,1),7)+A3)]
 の数式からおそらく不要であろう「+A3」を端折っただけですょ(^^;
 ( (())さんのA3云々は、その辺の指摘ですね)
 違う数式を入れるより、今入力されている数式を使われた方が手っ取り早いと考えましたので。
 この数式は何をしているのかと言いますと、最初のご質問の表で解説すると、
 2007年4月のカレンダーを作るときに4月1日より前の最終土曜日を求めるための数式と思われます。
 要はその日付が算出されれば良いわけで、(())さんの数式を用いられてよいかと思います。

 私が提示させていただいた1)〜の手順では、日付を表示するのに「1つ左側のセルの日付に1日加える」というをことを
 行っております。
 つまり、基準となる日が必ず必要になる訳で、それが先述の「4月1日より前の最終土曜日」の日付ということになります。
 そうすると、
 >毎月1日から表示させたい
 という時は、先述の最終土曜日を表示させる数式では用を足しません。
 その場合は、基準となる日のセルに「=DATE(C1,I1,1)」でよいと思います。
 (今回のカレンダーと同様、年がC1に、月がI1に入力される場合限定です)

 いまさらながらですが、ご希望のカレンダーの
 ・日付は横に何日分必要か。
  (最初の質問の通りだとすると8日分でよいか)
 ・週は縦に何週分必要か。
  (日付が横に8日分必要だとした場合で週が縦に複数になった場合、
   1週前の土曜日の日付を再度表示するのか)
 ・カレンダーの一番最初の日付はどのセルに表示させるのか
 を教えていただきますと、正確にご回答差し上げることが出来るかもしれません。
 それに加えて、私が提示させていただいた1)〜の手順を試してご希望通りの結果が出ているかどうか
 ご連絡いただけると幸いです。

 (からあげ弁当)

 からあげ弁当さん、(())さんありがとうございます!

 >(())さん毎月1日のセルの位置は固定です。その当月最初からの表示をさせています。
  ですが、自分で作成したものだと月末は来月の初日が反映されることもあり
   困っていました。これから(())さんが上記に残してくださった関数を参考に月末のセルに
   そちらの式を入力させてみます!

 >からあげ弁当さん
 私の最初のカレンダーの表示がわかりにくかったですね、すみません;;
 現在のレイアウトは下記のようになっています。

      A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   

 1                           2007                 4

 2                                                        部署名

 3        日  月  火  水  木  金  土   日  月  火  →月末まで続く

 4        1   2   3   4   5   6   7   8   9   10 →月末まで続く

 5    (予定や祝祭日をシート2から反映させる行)

 >・日付は横に何日分必要か。
  日付は1か月分が横一列にガーッと並んでいます。

 >週は縦に何週分必要か。
 1か月が横列一覧になっているので、縦には1週間分のみです。

 >・カレンダーの一番最初の日付はどのセルに表示させるのか
 B4からC4,D4〜〜〜と表示させています。

 からあげ弁当さんに提示していただいた手順は、希望通りの結果となっています。
 ひとりではどうにもならなかったので感激です!ありがとうございます♪
 ただ、9)の手順については(())さんの式を利用させてもらいました。

 お二人の協力があってこそのカレンダーができあがりました!

 >1日から表示させたい
 という事もおかげさまで解決し、きちんと表示させることができました。
 ここで疑問が湧いてきたのですが、いいでしょうか?

 曜日・日付ともに、土曜日→青 日曜日→赤 祝祭日→緑
 と設定しています。曜日と日付の項目の下に祝祭日が反映する
 スペースがあるのですが、こちらに反映させた祝祭日の行事名
 (例:建国記念日、昭和の日など)
 の色を指定することは可能なのでしょうか?

 すでに条件付書式設定は3つ埋まっているので、私が思いつく限りでは
 不可能なので・・・もし可能であればご教授お願い致します!
 (きくこま)

 ※先ほどの投稿で名前の間違いがありました。大変申し訳ありませんが、
   修正させていただきました。
    コピーして貼り付けをしていたので、このエクセルの学校をうろうろ
    していた時に参考にした方の名前を貼り付けてしましました。
 (きくこま)


 連続でコメント失礼します。
 17時以降はインターネットが出来なくなってしまうので、
 お返事は明日以降に拝見させていただきます。

 それと、上記で説明して頂いた(())さんの『29日以降の表示・非表示』
 等の関数を参考にさせていただいたのですが、エラーになってしまいます。
 エラーにならなかったとしても、毎月1日のセルの上にある曜日欄が、
 なぜか土曜日からになってしまい、曜日固定のような形になってしましました。

 せっかくアドバイスしていただいたのに活かしきれなくて申し訳ないです::

 こんなにしつこく質問しても必ずお答えしてくださるお二人にはとても感謝しています。

 (きくこま)


 行番号最初の表に元ずいて数式作成です。
最後の表は1行ずれていますが
  62の((())) でした
曜日・日付ともに、土曜日→青 日曜日→赤 3,4行目設定
祝祭日→緑 5行目設定 ならできますよ。
同じ範囲(1,2行  2,3行なら 2行目が同じ範囲になるので)は3設定
範囲が別の場合は 別とみなし範囲ごとに(3設定)設定可


 >きくこまさん
 なんとかご希望通りのカレンダーが出来ましたようで、何よりです(^^)

 祝日の行事名の色ですが、行事毎に別の色を指定したいという事で無ければ、
 ((()))さんも記されているように、5行目(祝日を反映する行)に
 条件付き書式を設定すれば対処できますよ(^^)
 どんな条件を設定するのかは・・・ここまで頑張ってきた、
 きくこまさんならきっと解るはず!
 ポイントは、どのセルを参照すればよいか、です。

 月末のエラーにつきましては、差し出がましいかと思いましたが、
 >=IF(DAY(DATE($C$1,$I$1,AA3+3))<5,"",AC3+1)
  =IF(DAY(DATE($C$1,$I$1,DAY(AA4+3)))<5,"",AC4+1)
                         ~~~   ~    ~        ~
 でどうでしょうか?

 (からあげ弁当)

 ((()))さん、からあげ弁当さん ありがとうございました! 
 なんとか最後は自分でも理解できました^^
 本当にお二人のおかげです!

 また違うことで行き詰まったらまたこちらでお世話になるかもしれないので、
 そのときもし私のことを覚えていましたら、また宜しくお願いいたします 笑

 もちろん今後は自分でもある程度のレベルまで理解できるよう精進していきますので、
 次の機会までには成長していたいと思います。ありがとうございました!

 (きくこま)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.