• ベストアンサー

Excel、特定の期間に色をつける(または「○○」と表示する)には?

エクセルでカレンダーを作っています。 A列に 5月1日 5月2日   ・   ・ 5月31日 と1ヶ月分の日付が入力されています。 毎月15~22日の間に特定の業務を行うので、 A列が15~22日であれば隣のB列のセルに色をつけるか、 例えば「業務日」などと表示したいのですがどうしたら良いでしょうか? また、15日が土日の場合、業務開始は直前の平日に繰り上がり、 22日がそうであれば業務終了は直後の平日に繰り下がるので、 A列の曜日から判断してB列の表示も繰り上げたり 繰り下げたりできると嬉しいのですが…。 よろしくお願いいたします。

  • ppr
  • お礼率75% (37/49)

質問者が選んだベストアンサー

  • ベストアンサー
noname#29107
noname#29107
回答No.4

1行目には、見出しが入っており、日付はA2から入っているとします。 条件付き書式の数式: =OR(AND(DAY(A2)>=15,DAY(A2)<=22),AND(DAY(A2)=13,WEEKDAY(A2,2)=5),AND(DAY(A2)=14,OR(WEEKDAY(A2,2)=5,WEEKDAY(A2,2)=6)),AND(DAY(A2)=23,OR(WEEKDAY(A2,2)=1,WEEKDAY(A2,2)=7)),AND(DAY(A2)=24,WEEKDAY(A2,2)=1)) B列に業務日と表示: =IF(OR(AND(DAY(A2)>=15,DAY(A2)<=22),AND(DAY(A2)=13,WEEKDAY(A2,2)=5),AND(DAY(A2)=14,OR(WEEKDAY(A2,2)=5,WEEKDAY(A2,2)=6)),AND(DAY(A2)=23,OR(WEEKDAY(A2,2)=1,WEEKDAY(A2,2)=7)),AND(DAY(A2)=24,WEEKDAY(A2,2)=1)),"業務日","") 祝祭日の考慮は、ちとキツイでしょうね。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

関数式による解決も、関数式が複雑になるようなので VBAで考えてみました。 A1に月初めの日があり、以下A列に日付が入っているとします。 15-22間の日はA列セルを黄色に、土日はA列を赤に色を付けました。15日が土日の場合は平日金曜日に繰り下げ、22日が土日の場合は平日月曜日に繰り上げしています。 丁度良い例と思い、16年8月でテストして見ました。 祝日対応は更に複雑になるので略。 Sub test02() d1 = Cells(1, "A") For i = 15 To 22 s = i p01: d2 = DateSerial(Year(d1), Month(d1), s) If Weekday(d2, 2) > 5 Then Cells(s, "A").Interior.ColorIndex = 3 Select Case s Case Is <= 15 s = s - 1 GoTo p01 Case Is >= 22 s = s + 1 GoTo p01 Case Else GoTo p02 End Select GoTo p02 Else Cells(s, "A").Interior.ColorIndex = 6 End If p02: Next i End Sub (テスト例) 2004/8/12 2004/8/13(黄色) 2004/8/14(赤) 2004/8/15(赤) 2004/8/16(黄色) 2004/8/17(黄色) ・・・ 2004/8/20(黄色) 2004/8/21(赤) 2004/8/22(赤) 2004/8/23(黄色) 2004/8/24

ppr
質問者

お礼

お礼が遅くなりました。申し訳ありません。 ご回答くださいました皆様、色々な方法を授けていただきありがとうございました。 まとめてのお礼で大変恐縮なのですが、皆様にはとても感謝いたしております。 ポイントですが、本当は平等にお分けしたいところなのですけれど、 心をオニにして(笑) 実際に方法を使わせて頂いた方に20pt、 色々お考えくださり2度目の投稿まで頂いた方に10ptということで(すみません、私にはマクロはハードルが高すぎました) あしからずご了承ください。 ありがとうございました。

  • gura_
  • ベストアンサー率44% (749/1683)
回答No.3

A1-A31 まで日付が、2004/5/1 - 2004/5/31 が入っていて、「セルの書式表示」が、「日付」の設定で、5月1日 - 5月31日 となっているとして、  b1 の 「条件付き書式の設定」で「数式」を =OR(AND(A1>38122-1,A1<38129+1),AND(OR(A1=38122-1,A1=38122-2),OR(WEEKDAY(A1)=6,WEEKDAY(A1)=7)),AND(OR(A1=38129+1,A1=38129+2),OR(WEEKDAY(A1)=2,WEEKDAY(A1)=1))) として、「書式」でパターンの色などを指定してください。  さらに、これをb31まで、「コピー」もしくは「書式コピー」すれば良いと思います。 ・・・・ 確認済み  なお、38123は2004年5月15日の、38129は2004年5月22日 の数値表示です。 足りない分は、エクセルのヘルプや、#1さん指定のURLなども参考にして下さい。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

(1)日にちが固定の場合 (2)>隣のB列のセルに色をつけるか->条件該当行の指定列のセルに色を付ける、は下記で出来ました。 A1:C31を範囲指定する。 書式-条件付き書式-数式が-=AND(DAY($A1)>=15,DAY($A1)<=22)-パターン指定-OK (注意。$を上記のように付けること。比較演算子を=<でなく<=にすること) 土日(祝)の場合繰り上げ繰り下げは難しそう。 ANDの中にWEEKDAY(A1,3)<5をもうひとついれてやってみます。

  • sanpin-cha
  • ベストアンサー率48% (533/1095)
回答No.1

いろいろ例題がでてます。 URLを参考にして下さい。

参考URL:
http://www2.odn.ne.jp/excel/waza/cformat.html
ppr
質問者

補足

ご回答ありがとうございます。 実は、リンク先サイトの「土日祝日に色を付ける」を見ながら例題と同じ方法でカレンダーを作成していました。 一定の期間に色づけするのは「条件付き書式」で何らかの指定をすれば良さそう、という考えには何とか辿り着いたのですが、その先が解らず質問してみた次第です。 参考URLの内容を、もう一度よく読んでみます。

関連するQ&A

  • 色つき行を非表示にしたい。

    お世話になっております。 エクセル(2007)で悩んでいます。 月ごとのカレンダーをつくっているのですが、 A列は日付、B列はWEEKDAY関数で曜日を入れてあります。 C列以降は備考欄にしています。 土日祝日は日付と曜日を色つきセルにして、わかりやすいようにしてるのですが、この色つきセルの行を非表示にしてしまいたいのですが、どのようなマクロが使用できるのでしょうか、ご教示ください。

  • エクセルで各シートに日付・曜日一括表示するには

    (1)エクセルで7月31日分のシートをつくり、今年のカレンダーどおりの日付・曜日を(各シートのA1セルに、いちいち入力するのではなく)一括で各シートのA1セルに表示できる方法があれば、教えて下さい。 (2)エクセルで昨年7月の平日の数だけシートがあるファイルがあります。各シートのA1セルには、「平成19年7月○日(○曜日)」と入力されています。 このファイルを、今年の7月の平日カレンダーに一括置換するには、どうすればいいでしょうか? 昨年と今年は平日の日付はもちろん、同じ日でも曜日が違いますので、各シートを開き、いちいち日付・曜日を直さなければいけないのでしょうか。教えて下さい。宜しくお願いします。

  • 特定の文字に色をつけたいんですが・・・

    エクセルで予定表のようなものを作っています。A列に日にち,B列に曜日を入れます。     A    B    C  1  5/1   金  2  5/2   土  3  5/3   日 土日の文字を赤くしたいのですが、毎月毎月、土日だけ選択して文字の色を変えるのが面倒なのです。B列に土または日と入力されたら日付と曜日の文字が赤くなるようにするにはどうしたらいいのか教えてください。祝祭日までとは言いませんので。  

  • エクセルで休日日数・連休日数を表示するにはどうしたら良いですか?

    休日日数(連休日数)を表示させたいです。 A列には日付がカレンダー通りに並びます。 (日付が飛ぶ・前後するという事はありません) B列にはA列に並んだ日付に対応して土日祝日を判定し、該当する場合1が表示されます。 そこで、C列にB列の小計を出したいのですが、どうしたら良いでしょうか? (例 単独の休日なら1、土日なら2、土日を含む3連休なら3) 但し、表示箇所は小計するセルの2行上(2日前)のセルとしたいです。 よろしくお願いします。

  • エクセルでランダムな日付を関数使って曜日を表示

    例えば、A列に日付の項目B列に曜日の項目を作ります。A3~A20のセルにランダムに日付が入っています。その横のB3~B20セルに曜日を表示したいのですが・・・・・・ B列にはA列を参照する数式を入力し、セルの書式設定の表示形式で曜日を表示するにはどのようにしたらいいのでしょうか?宜しくお願いします。

  • Excelで曜日の自動表示をしたい

    先程、Excelで日付を自動で表示させる方法を質問したのですが、 今度は曜日も自動で表示させたくなったので、 再び質問させて頂きました・・。 Excelで年と月を入力しているセルを読み取り、 それに適合する曜日を自動で表示する式を教えて下さい。 例えば、 A1セルに、2003 A2セルに、5 A3セル~A33セルに、日付 が表示されている時に、 B3セル~B33セルに、A列に表示されている日付に合致した曜日を 自動で表示させるような式があれば、教えて下さい。 よろしくお願いします。

  • エクセルの計算

    質問させていただきます。 Aの列に飛び飛びでランダムの日付があり、Bの列に曜日が縦に並んでいます。 A列の日付を入力したら曜日が自動で出るようにB列に以下を入れました。 =IF(A1<>"",MID("日月火水木金土",WEEKDAY(A1),1),"") このとき、土曜は青、日曜は赤と条件をつけました。 そしてC列に人数、D列に合計金額の欄があり、人数×単価をDに入れました。 このとき、条件として土曜日曜はプラス1,000円となります。 IFとORで対処し、一日の計算はどうにかできました。 1期間の合計(平日は平日の欄、土日は土日の欄)を下に入れるのですが、上記に書いたとおり、日付はカレンダーではなくランダムで入っているので、土日だけの計算は手作業で計算させています。 これを土日は土日、平日は平日で計算させる方法はありませんでしょうか? たとえば土か日と記入されているものだけを集めて計算させるとか。 説明に不足があればどんどんご指摘下さい。

  • Excelで、特定の条件を満たすと指定のセルの値を消去するマクロ

    WindowsXP環境でExcel2000を使用しています。現在A列に日付、B列にA列の日付を引数として得た曜日を表示させ、条件書式で曜日が土日ならセルの色が赤くなるように設定しています。C列には始業時間D列は終業時間がそれぞれ予定としてあらかじめ入力した状態にしてあります。そこで、上記によって取得した曜日が土日にあたるセルの右側、つまりB列およびC列の値を自動的にもしくはマクロ処理で消去したいのですが、なにか良い方法はないでしょうか? よろしくお願いします。

  • エクセルで特定のセルをマクロで色づけする

    お世話になります。 出勤チェックを集計するためのファイルを作っています。 説明がわかりにくいかもしれず申し訳ありません。 添付画像のカレンダーシートから年月を選択。 集計シートの日付は、カレンダーシートから取得した年月日を リンク貼り付けし、表示形式を日付と曜日にしています。 例えば、2011年9月と選択した場合、 日付の1日のところは、(画像でセル番号が抜けましたが、B4です) =DATE(カレンダーシート!C4,カレンダーシート!C5,1) 曜日のところは、=B4 となっています。 この状態で、土日の休日は、集計シートの朝、帰りのセルを空欄にしたいのです。 (出勤日計算を、”朝”の数でcount関数で出しているため) 単純に、IF文で曜日が土日なら空欄にする方法は、 中に入っている数式が日付なので、できません。 何か良い方法をアドバイスいただければありがたいです。 なお、できるだけ、マクロやVBAなしで関数のみで実現できると助かります。 よろしくお願い申し上げます。

  • 勤務表の休暇振分表示

    社員の休日を自動的に振り分ける表を作成したい と思っているのですが・・うまくいきません。 A1セル2006/7/1を元にカレンダーを作成しています。 A列が日付、B列を曜日とし条件書式を組み合わせ、 行に土曜と祝日と日曜に色分けをし月が変われば表示しない 設定としています。月をかえたらその月のカレンダーに なるようにしています。 C・D列には条件書式を反映しています。 仕事をしたらB列を元に条件に合うD列のセル(曜日行)に 担当者名を表示したいと思います。 担当者名には、番号をつけ、別の列に表示してあります。 C列には担当に値する番号を入力し C列にB列(曜日列)が土・日・祝日ならばDセルには何も 表示しない。 B列が月から木ならそれぞれ翌日の曜日のDセルに担当者名を 表示する。 (例えば7月3日(月)の場合C列にAと入力すると7月4日 の行のDセルにAに値する担当者名を表示する) ただし、金なら翌週の月の行のDセルに担当者名を表示する。 どうかお力をお貸しください! 急いでいます。よろしくお願いします。

専門家に質問してみよう