エクセルで条件付き書式を使って工程表を作成する方法

このQ&Aのポイント
  • エクセルで工程表(ガントチャート)を作成する際、条件付き書式を使用することで、指定した条件に応じて色づけされる工程表を作成することができます。
  • 具体的には、B列に開始日、D列に終了日を入力し、C列とE列に1日の何分割目から開始なのかを入力すると、自動的にF列以降の工程表が色づけされます。
  • 例えば、B列とD列に日付を入力し、C列とE列に1日の何分割目から開始するかを入力すると、該当する工程が水色に色づけされます。Excelのバージョンは2010です。
回答を見る
  • ベストアンサー

エクセル 条件付き書式について

お世話になります。 現在、エクセルで工程表(ガントチャート)を作成しています。 添付画像の様なレイアウトで、1日は4分割で時間感覚がわかるようになっています。 B列に開始日、D列に終了日を入力し、 C列・E列に1日の何分割目から開始なのかを入力したら、 自動的にF列以降の工程表に条件付き書式にて色づけされるようにしたいです。 添付画像で言いますと、B~E列に入力したら、水色の色がつくようにしたいです。 ちなみに、F3、B列、D列は「2013/3/4」の様に入力し、 表示形式を変えています。 Excel2010を使用しています。 マクロは良くわかりませんので、条件付き書式で考えています。 条件付き書式内に使用する数式を教えて頂けると助かります。 関数は勉強中なので教えて頂いた関数を自分なりに解読してみて、 解読できない際は、再度質問させて頂くかもしれません・・・。 宜しくお願い致します。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 回答:No.1様の方法では、3行目に入力されている日付の中に、B列やD列で指定されている開始日と終了日の日付けが、両方とも含まれている場合以外では色付けが正しく行われません。  例えば、3行目に入力されている日付が2013/3/4から始まっている場合で、且つB列で指定されている開始日が2013/3/1という場合も考えられますし、3行目に入力されている日付が2013/3/15までしか入力されていない場合で、且つD列で指定されている開始日が2013/3/31という場合も考えられます。  その様な場合にも対応させるためには、次の様にされると良いと思います。 F5セルを選択   ↓ [ホーム]タブをクリック   ↓ 「スタイル」グループの中にある[条件付き書式]ボタンをクリック   ↓ 現れた選択肢の中にある[ルールの管理] をクリック   ↓ 現れた「条件付き書式ルールの管理」ダイアログボックスの中にある[新規ルール]ボタンをクリック   ↓ 現れた「新しい書式ルール」ダイアログボックスの[数式を使用して、書式設定するセルを決定]をクリック   ↓ 「次の数式を満たす場合に値を書式設定」と記されている欄に次の数式を入力 =AND(OR(HLOOKUP(9E+99,$E$3:F$3,1)>$B5,AND(HLOOKUP(9E+99,$E$3:F$3,1)=$B5,COLUMNS($E:F)>=MATCH(9E+99,$E$3:F$3)+$C5-1)),OR(HLOOKUP(9E+99,$E$3:F$3,1)<$D5,AND(HLOOKUP(9E+99,$E$3:F$3,1)=$D5,COLUMNS($E:F)<MATCH(9E+99,$E$3:F$3)+$E5)))   ↓ 「新しい書式ルール」ダイアログボックスの[書式]ボタンをクリック   ↓ 現れた「セルの書式設定」ダイアログボックスの[塗りつぶし]タブをクリック   ↓ 現れた[色]欄をクリック   ↓ 現れた色のサンプルの中から、好きな色(例えば水色)の四角形を選択してクリック   ↓ 「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック   ↓ 「新しい書式ルール」ダイアログボックスの[OK]ボタンをクリック   ↓ 「条件付き書式ルールの管理」ダイアログボックスの「ルール(表示順で適用)」欄が「数式:=AND(OR(...」となっている行の「適用先」欄をクリック   ↓ 工程表の中の「条件に従って色付けを行ったり、色を消したりしなければならない全てのセル」を含むセル範囲を、まとめて範囲選択   ↓ 「条件付き書式ルールの管理」ダイアログボックスの[OK]ボタンをクリック  以上です。

umixtomo
質問者

お礼

皆様、ご回答ありがとうございました。 同じレイアウトで表を作成頂いて考えて頂いて、 とてもお手間だったと思いますが、 大変助かりました。 本当にありがとうございました。 皆様にBAをお付けしたいところですが、 1人のみとのことでしたので、 こちらのご回答をBAにさせて頂きました。 添付画像の表から、発展させていこうと考えていたのですが、 手を加えても不具合が起こらなかったので、 こちらの回答を選ばせて頂きました。 皆様、ありがとうございました。

その他の回答 (4)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

お示しの表でB列やD列の日付のデータはシリアル値で2013/2/5のようにん入力されているとのことですがF3セルから右横の日にちについても2013/2/1のように入力した後でセルの表示形式で d などのようにしているとします。そうでないと関数自体も複雑になりますのでそのようにしてください。 ところで、お示しの表で5行目には作業用の行を挿入します。おしめのデータは6行目になります。 F5セルには次の式を入力して右横方向に例えばDJ5セルまでドラッグコピーします。 =IF(OFFSET(F$3,0,-(MOD(COLUMN(A1)-1,4)))="","",OFFSET(F$3,0,-(MOD(COLUMN(A1)-1,4)))+(MOD(COLUMN(A1)-1,4)+1)*0.1) 作業列が目障りでしたら5行目を選択したのちに右クリックして「非表示」を選択します。 F6セルから例えばDJ1000セルまでを範囲として選択したのちに「ホーム」タブの「条件付き書式」の 「新しいルール」から「数式を使用して書式設定するセルを決定」にチェックをして数式の窓には次の式を入力します。 =AND(F$5>=$B6+$C6*0.1,F$5<=$D6+$E6*0.1) 同じ画面の「書式」をクリックして「塗りつぶし」のタブから水色などを選択してOKします。

noname#203218
noname#203218
回答No.4

下記のような勘弁な式で可能です。 条件付き書式に下記式をコピペして下さい。 =AND(DAY($B5-$F$3)*4+$C5+5<=COLUMN(),DAY($D5-$F$3)*4+$E5+5>=COLUMN())

noname#204879
noname#204879
回答No.2

[No.1]への補遺、 言わずもがなのことだけど、「範囲 F5:DY5 を選択して、…」の前に、結合された2つの範囲 F3:F4 は右方へ(31日の列まで)ズズーッとドラッグ&ペーストしています。

noname#204879
noname#204879
回答No.1

B1: 2013 ← 年 D1: 3  ← 月 範囲 F3:I3 および F4:I4 をそれぞれ[セル結合] F3: =DATE($B1,$D1,INT((COLUMN(A1)-1)/4)+1) 書式: d F4: =F3 書式: aaa 範囲 F5:DY5 を選択して、セル F5 がアクティブになっていることを確認して、次の[条件付き書式]を設定した後で、範囲 F5:DY5 を下方にズズーッとドラッグ&ペースト 数式が   =AND(COLUMN(F5)-COLUMN($E5)>=MATCH($B5,$F$3:$DY$3,0)+$C5-1,COLUMN(F5)-COLUMN($E5)<=MATCH($D5,$F$3:$DY$3,0)+$E5-1) パターン色 青 なお、月によって28日以右を非表示にすることも可能だけど、それはご自分でどうぞ。 私は此処までしかやるつもりなし。

関連するQ&A

  • エクセル2007 条件付き書式

    エクセル2007の条件付き書式で教えてください。 エクセル表で時間計算をしたいのですが、手入力した時間の合計があるセルの時間と違っていた場合に条件付き書式でセルに色をつけたいのですが方法がわかりません。 A1 開始時間 B1 終了時間 C1時間計算(B1+1-A1) D1事務a E1事務b F1事務c のようなエクセル表をつくり、C1以外の部分は手入力してます。 D1+E1+F1の入力がC1の自動計算部分と違っていた場合に色をつけてわかるようにしたいです。 条件付き書式のC1のセルの値がD1+E1+F1と違ったらというのを使ったのですが、計算式が入っているせいか思ったように機能してくれません。 どのようにすればできますでしょうか?また条件付き書式で数式を使う場合はどのようにすればよいでしょうか?アドバイスお願いいたします。

  • エクセルの条件付き書式に関して

    エクセルにて勤務表を作りたいと考えております。 E列に開始時間、F列に終了時間が入っておりH列からZ列まで8:00~17:00まで30分刻みで時間がプロットしてあります。 開始時間・終了時間と同じ値のH列からZ列を塗りつぶしたいのですが、条件付き書式で可能なのでしょうか? 塗る方法があれば方法をご教示頂ければと思います。 (例) E2=10:00、F2=16:00 H1=8:00、I1=8:30・・・Z1=17:00

  • エクセルの条件付き書式設定について教えてください

    エクセルの条件付き書式設定について教えてください エクセルで工程表を作成しているのですが、条件付き書式設定で悩んでいます。 開始日と終了日に日付を入れるとその間はセルの色が黒に変わるように設定しているのですが、更に作業内容の項目のFIXという項目の開始日と終了日を入力したときだけセルの色を赤に変わるように設定したいです。 <例>                      7/1 7/2 7/3 A        B(開始日)   C(終了日) キックオフ   7月2日     7月2日 制作      7月8日     7月18日 FIX       7月20日    7月20日 色々と関数を使って試してみたのですが、どうしてもうまくできません。 ちなみにEXCELは2007です。 お手数ですが、ご教授お願いします。

  • エクセルと条件付き書式のコピーについて

    エクセルと条件付き書式のコピーについて エクセル2003で以下のような表を作成しました。 B列からE列に映画館の売り上げを入力しています。 したい処理は、もし、映画館A~Cの売り上げが 特定映画館の売り上げを下回っている場合、そのセルを 黄色で塗りつぶしたいのです。 条件付き書式のコピーをしましたが、上手くいきませんでした。 Cの2列に条件付き書式を設定して、コピーすればいいのでしょうか。 いっぺんに入力できる方法を教えてください。 お願いします。

  • エクセルと条件付き書式について

    エクセルと条件付き書式について 以下のような表をエクセル2007で作成しました。 要は、左の表のB列に右のような表の国籍の入力があると 左の表のA列に「★を入力してください」とのメッセージを出したいのです。 さらに★以外の文字が入力されていると、黄色で塗り潰したいです。 ★の一文字だけでも入力されていると、白色にクリアしたいです。 お願いします。

  • Excel の『条件付き書式』について

    いつもお世話になっております。 Excelで以下のような表を作成しています。 『条件付書式』について教えてください。  列A  列B  列C   日付  曜日  空白セル 列Aに日付を入力して、その日が土日であったらセルに網掛けをするように設定しています。 列Bは、列Aに日付を入力すると自動で曜日を表示するようにし また、土日であったら自然に網掛けになるようにしました。 (列A・列Bをドラッグして『条件付書式』で設定)  『条件付書式』は…     条件1=WEEKDAY(A○,2)=7     条件1=WEEKDAY(A○,2)=6 …で設定。 列Cも同様にしたいのですが、どうもうまくいきません。 列A・列B・列Cとドラッグさせて『条件付書式』にしたのですが 土日でなくても網掛けになってしまいます。 列Cも土日であれば網掛けにする方法があれば アドバイスいただけますでしょうか。 (自動では無理なようでしたら地道に網掛けしていくとします。) よろしくお願い致します。

  • excelの条件付き書式でこれをやりたい!!!

    すみません、助けてください。 Excelの条件付き書式で(マクロとかではなくて条件付き書式で)やりたいことがありますが、 成功しません。お知恵を借りたいので、どうぞよろしくお願いします。 図の B7:B10 のように、西崎、田中、鈴木、木村 という人の名前が入っています。 B13:C17に、営業部は誰と誰、人事部は誰と誰、女性は誰と誰…というように、所属人員表があります。 お気づきのように、営業部の西崎は営業部の区分にも名前があり、女性なので女性の区分にも入っています。 やりたいことは、 B3に営業部という区分を入力したとき、B13:C17の所属人員表によれば営業部なので西崎と鈴木が該当。B7:B10にあるリスト中の該当者は、条件付き書式で塗りつぶしがかかる。。。 女性という区分を入力したのなら、それに該当する西崎,鈴木木村,に塗りつぶしがか。。。 ということをやりたいのです。 (B3は、入力規則を使ってリスト選択できるようにしようと思っています) 条件付き書式を「数式で」にし、関数などを駆使してこれを実現したいのですが、 うまくできません。 条件付き書式内で、下記のような数式を書いてみました。 =$B7=VLOOKUP($B$3,$B$14:$C$17,2) こうすると、B13:C17の所属人員表において、所属人員が1名ならば成功します。 しかし、ここでは複数人いるため、ワイルドカード「*」を使えないか?と思ってみましたが、 =*$B7*=VLOOKUP($B$3,$B$14:$C$17,2) ="*"&$B7&"*"=VLOOKUP($B$3,$B$14:$C$17,2) =("*"&$B7&"*")=VLOOKUP($B$3,$B$14:$C$17,2) こんな風に書いてみても、うまくいっていません。 VLOOKUPにこだわらないので、ほかの関数でできるとか、 所属人員を1セルにカンマ区切りで全員書くのではなく、右方向(D列やE列)に一名ずつセルを分けて書いてもいいです。 どうにか成功する知恵を授けてください。 よろしくお願いします…

  • 条件付き書式4つ以上のVBAについて教えてください。

    条件付き書式4つ以上でのVBAの作成方法を教えて下さい。 下記のような表があります。   A     B     C     D    E     F    G     H     I  J  K・・・ 1 開始日  終了日   開始日  終了日  開始日  終了日  開始日  終了日   4/1 2  3  4 ・・・ 2 2008/4/10 2008/4/20 2008/5/10 2008/5/20 2008/6/10 2008/6/30 2008/7/10 2008/7/19 (ここのセルに色をつけたい) 3 2008/4/03 2008/4/20 2008/5/10 2008/5/20 2008/6/10 2008/6/30 2008/7/10 2008/7/191 (ここのセルに色をつけたい) ・・・以下複数行 条件付き書式の設定方法 「数式が」「=AND(I$1>=$A1,I$1<=$B1)」の場合 「セルのパターンを(任意の色)」と設定 はわかるのですが、 開始日と終了日が4つ以上(実際は7つあります)あり これを1行に表したいのです。 各工程を色で表したいのです((1)工程A~B(セルの色:赤)、(2)工程C~D(青)…) できれば色をつけた上で、(1)工程と色がついたセルの上に入力したいです。 (※こちらは難しそうなので色をつける方法だけでもお願いします。)、 どうしてもVBAの設定がわからないので教えて下さい。よろしくお願い致します。 初心者なのでVBAの設定方法(どこに入力し、どのように実行すればよいか)も教えていただければ助かります!!

  • 条件付書式設定について

    画像のようなシフト表のシートがあります。 E3~T7の範囲にA列,B列にある指定休の曜日の日のセルにだけ"指"と表示させるにはどうしたらいいのでしょうか?? またE8~T8に"○"が入力されたら"○が入力された列の1~8列を青色に変更するといったことはできるでしょうか? 条件付書式もしくは関数を使用して設定できますか??

  • エクセルの条件付き書式設定について教えてください

    エクセルの条件付き書式設定について教えてください エクセルで工程表を作成しているのですが、条件付き書式設定で悩んでいます。 以前、こちらで相談させていただいてほとんど問題は解決して作成し終わったのですが・・・ さらに追加で注文をつけられてしまい悩んでいます。 今回の質問は、以前の「開始日と終了日に日付を入れるとその間はセルの色が黒に変わるように設定しているのですが、更に作業内容の項目のFIXという項目の開始日と終了日を入力したときだけセルの色を赤に変わるように設定したいです」に加えて、FIXという文字の前後にも何か文字がはいっている場合でも赤に変わるように設定したいです。 <例>                      7/1 7/2 7/3 A        B(開始日)   C(終了日) キックオフ   7月2日     7月2日 制作      7月8日     7月18日 Flash制作FIX  7月20日    7月20日 FIXの前後に*をつけてFIXを含むみたいにしてみたりもしたのですが、どうもうまくセルの色が赤に変わりません。 最終的には、「もし、A列にFIXという文字が含まれているのなら(FIXのみでも可)、B列とC列に日付を入れたらカレンダーのその日のセルが赤に変わる」というふうにしたいです。 お手数ですが、ご教授お願いします。

専門家に質問してみよう