- 締切済み
Excel2007 曜日によって別のセルの色を変え
いつもお世話になり有難うございます。 表題が途中で入れていますが、日付を入力した時に、別のセルの色が変わるようにしたいのですが可能でしょうか。 先日http://okwave.jp/qa/q8063467.htmlにて質問させていただき無事解決したのですが、更に社内で要望があり、調べ方が悪いのか、どうしてもわからなかったためこちらで質問させていただきます。 ●シフト表を作っています。 ●日付を入力したら、その日営業している時間帯のセルだけに色をつけたいのですが、 ●月曜~土曜(10時~21時)、日曜・祝日(10時~20時)、祝前日(10時~21時)の3パターンで営業時間が異なります。 ●曜日ごとなら可能だと思うのですが、祝日判定がちょっとやっかいかもしれません。 ●でも可能ならやり方を、もしくは参考になるサイトをお教えいただけませんでしょうか。 何卒よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
どこをどうしたいのか不明ですが。様々なシートの作り方があり得るので、ほんの一例。 セルに入力する数式 セルの書式記号(*) A2 =b2 yyyy" 年 "m" 月 " B2 2013/5/1 d" 日" C2 =b2 "("aaa")" D2 =(e2=0)*(e3=1) E2 =countif(G$3:G$19,b2) G3 2013/1/1 m/d"("aaa")" *セル範囲を選んで右クリックし「セルの書式設定>表示形式タブ>ユーザー定義>種類ボックス」に入力 色を付けるなら、上記に加えて、C~E 列の情報とどっかに入力済みの時間帯?を使った条件式を、ホームタブの条件付き書式にてテキトーに設定。
- KURUMITO
- ベストアンサー率42% (1835/4283)
例えばB1セルに2013年6月と入力します。 A2セルには2013/6/4のように入力して6月4日のように表示形式で表示します。 シート2のA列には祝日を2013/1/1のように入力します。 そこでシート1に戻って、D8セルからE8セルを結合して9:00と入力します。そのセルを選択してから右横方向にドラッグコピーします。AE8セルまでに22:00までが表示されますね。 D8セルからAE8セルを選択したのちに「ホーム」タブの「条件付き書式」から「新しいルール」を選択します。 「数式を使用して、書式設定する・・・・」を選択してから数式の窓には次の式を入力します。 =OR(AND(OR(WEEKDAY($A$2)=1,COUNTIF(Sheet2!$A:$A,$A$2)>0),AND(D8>="10:00"-"0:01",D8<"20:00"-"0:01")),AND(COUNTIF(Sheet2!$A:$A,$A$2+1)>0,AND(D8>="10:00"-"0:01",D8<"21:00"-"0:01")),AND(WEEKDAY($A$2)<>1,AND(D8>="10:00"-"0:01",D8<"21:00"-"0:01"))) なお、上記の式は長いので窓の中に入力していくのは容易ではありません。そこでどこかのセルに上の式を入力してから「コピー」し、それを数式の窓で貼り付けるようにします。 その後に「書式」をクリックして「塗りつぶし」のタブで好みの色を設定してOKします。 なお、数式では"0:01"などが使われていますが時刻の扱いではしばしば時間の誤差が問題となりますのでそれを解消するためです。
お礼
回答有難うございます。 質問の仕方が悪く、もう一度整理して再質問させていただきたいと思います。
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! >●月曜~土曜(10時~21時)、日曜・祝日(10時~20時)、祝前日(10時~21時)の3パターンで営業時間が異>なります。 とありますが、よくよく考えると日・祝日のパターンとそれ以外のパターンの2種類だけで大丈夫だと思います。 そこで条件付き書式を2つ設定してみてはどうでしょうか? 尚、日付セルはB2セルに「月」・B3セルに「日」の数値が入るものとしています。 画像を拝見するExcel2007のように見えますので、 ↓の画像のように別Sheetに祝日用のデータを作成しておきます。 そして画像のB3~E21セルを範囲指定 → 名前ボックス(画面左上のセル番地が表示されているところ)に 仮に 祝日 と入力 → Enter これで範囲指定部分が「祝日」と名前定義されましたので、 元Sheetの色を付けたいセルの10~20の範囲を選択 → 条件付き書式 → 「新しいルール」 → 「数式を使用して・・・」 → 数式欄に =OR(WEEKDAY(DATE(2013,$B$2,$B$3))=1,COUNTIF(祝日,DATE(2013,$B$2,$B$3))) という数式を入れ → 書式 → 塗りつぶし → 好みの色を選択しOK 次に 10~21の色を付けたいセルを選択 → 同様に・・・中略・・・ → 数式欄に =AND(WEEKDAY(DATE(2013,$B$2,$B$3),2)<7,COUNTIF(祝日,DATE(2013,$B$2,$B$3))=0) という数式を入れ好みの色を選択しOK 尚、アップした画像は2016年までの祝日を表示していますが、数式は今年(2013年)限定となります。 ※ 元Sheetにシリアル値(年・月・日)を入れるセルが別々であれば当然それにも対応できます。 ※ Excel2007以降の場合条件付き書式の数式欄に、この画面から数式がコピー&ペーストできるはずです。 参考になりますかね?m(_ _)m
お礼
回答有難うございます。 質問の仕方が悪く、もう一度整理して再質問させていただきたいと思います。
- keithin
- ベストアンサー率66% (5278/7941)
>月曜~土曜(10時~21時)、日曜・祝日(10時~20時)、祝前日(10時~21時)の3パターン これはご相談の誤記でしょうか。10時ー21時と10時-20時の2パターンしかありませんが。 ともあれ、10時-20時は「条件によらず」常に営業時間(色が付く)なので、固定で色を塗ってしまって構わない事が判ります。 一方20時-21時の2列(Z、AA列)だけは、日曜と祝日の場合に限り、色を塗りません。 条件によって色を塗ったり塗らなかったりするのは、「条件付き書式」という機能を使います。エクセルのどんな参考資料にも必ず出ていますので、知らないなら勉強してください。 そのシートの日付が「日曜日」であるか「祝日」であるかは、そのシートの年/月/日の日付の値によって計算します。またエクセルは「日本の祝日」を知らないので、あなたが「この年/月/日は祝日だ」と、別途用意しないとなりません。 そのシートが何年何月何日なのか、どこかのセルに記入してあるんですね。あなたのエクセルの具体的な構成がイマイチ不明なので、とりあえず簡単のためたとえばB3セルに2013/6/12のようにあるものとします。(違うなら適切に応用してください) Sheet2のA列A2以下に、祝日の年月日を、カレンダーを見ながらあなたが手で列記してください。 2013/1/1、2013/1/2、2013/1/3…から始まって、2013/5/3、2013/5/4…と言った具合ですね。 Sheet2のA列を選択、名前ボックス(数式バーの左端、通常A1のように表示が出ている箱)の中に 祝日一覧 と記入してEnterし、祝日を記入したセル範囲に名前を定義しておきます。 条件付き書式で色を出したり消したりする事についてお話ししましたが、今回ご相談のケースでは実際には 1.Z:AA列にも固定で色を塗っておく 2.条件付き書式で、日曜祝日なら条件付き書式で「塗らない色を塗らせる」 のように作成したほうが簡単です。 手順: Z:AA列にも色を塗る Z8:AA16を選択する ホームタブの条件付き書式▼から新しいルールを開始する 数式を使用して…を選び、 =OR(WEEKDAY($B$3)=1,COUNTIF(祝日一覧,$B$3)>0) と記入、書式ボタンで塗りつぶしを「色なし」を選んでOKする。
お礼
回答有難うございます。 質問の仕方が悪く、もう一度整理して再質問させていただきたいと思います。
お礼
回答有難うございます。 質問の仕方が悪く、もう一度整理して再質問させていただきたいと思います。