『工程表』(だいく) フリーの工程表をダウンロードし、こちらで使いやすいように作り直しています。開始日を設定し工数(日数)を入力すると、カレンダーに反映され、その日の背景色が変わるのですが、おそらく土日が工数に含まれておらず塗りつぶされてしまいます。日数を7日に設定しているのにカレンダー上では9日になってしまいます。 例 着工 5/1 工数 7日  〇は塗りつぶし 5/1(月)〇 5/2(火)〇 5/3(水)〇 5/4(木)〇 5/5(金)〇 5/6(土)〇 5/7(日)〇 5/8(月)〇 5/9(火)〇 となってしまいます。 日数分の塗りつぶしの設定はどうすればいいでしょうか。 工数 手入力 開始日 手入力 完了日 =IF(E5="","",WORKDAY(F5,E5,非稼働日)-1) カレンダー内の関数 =IF($E5="","",IF((H$3>=$F5)*AND(H$3<=$G5),IF($A5="",IF($B5="",3,2),1),"")) です。 ちなみにこちらのサイトでダウンロード、参考にさせてもらっています。 http://popleaf.jp/hotate/tag/excel/ よろしくお願いいたします。 < 使用 Excel:Excel2019、使用 OS:Windows10 > ---- WORKDAY関数を一度検索して理解されてはいかがでしょう。 Googleの最上位に出てくる記事だけでも原因はわかると思います。 (*) 2022/05/11(水) 10:07 ---- 非稼働日を入力したらいいのでは? そういう話ではなくて? (まっつわん) 2022/05/11(水) 10:08 ---- あ。非稼働日をなくしたいなら、 消せばよいかと。。。 (まっつわん) 2022/05/11(水) 10:13 ---- WORKDAY関数は何も指定しなくとも土日を非稼働日としている。 WOAKDAY.INTL関数を使い WORKDAY.INTL(F5,E5,"0000000",非稼働日) とすると土日も稼働日扱いとなる。 "0000000" で月曜日から0が稼働日、1が非稼働日の指定となる。 (ねむねむ) 2022/05/11(水) 10:32 ---- ちょっと確認だけ >完了日 =IF(E5="","",WORKDAY(F5,E5,非稼働日)-1) これはダウンロードしたファイルの式、そのままですよね。 実際「非稼働日」なんてものがあるんですか? >カレンダー内の関数 >=IF($E5="","",IF((H$3>=$F5)*AND(H$3<=$G5),IF($A5="",IF($B5="",3,2),1),"")) よくわからない式ですけど、条件付き書式だけでできるのでは? 以上 (笑) 2022/05/11(水) 11:43 ---- ねむねむ様 ご返信ありがとうございます。 =IF(E5="","",WORKDAY(F5,E5,非稼働日)-1) これを =IF(E5="","",WORKDAY.INTL(F5,E5,"0000000",非稼働日)-1) としましたがうまくいきませんでした。 私の理解が足りずすいません。 笑様 ダウンロードしたファイルの式そのままです。非稼働日は別のシートがありそれに日付を入力すると自動的に背景色が変わります。 開始日、工数を入力すると青い背景、休日はグレーとなります。 カレンダー内の関数に関して、条件付き書式すらわかりません。 グーグルで調べたり、試したりしてみましたがうまくいきませんでした。 大変申し訳ございませんがご教示願えませんでしょうか。 よろしくお願いいたします。 (だいく) 2022/05/11(水) 12:02 ---- 追記 =IF(E5="","",WORKDAY(F5,E5,非稼働日)-1) これを =IF(E5="","",WORKDAY.INTL(F5,E5,"0000000",非稼働日)-1) としましたがうまくいきませんでした。 "0000000"こちらを"0000001"にしてみてもできません。 その他調べましたがわかりませんでした。 (だいく) 2022/05/11(水) 12:32 ---- =IF($E5="","",IF((H$3>=$F5)*AND(H$3<=$G5),IF($A5="",IF($B5="",3,2),1),"")) こちらの式で各セルには何の値が入っているのだろうか? (ねむねむ) 2022/05/11(水) 12:48 ---- ご返信ありがとうございます。 =IF($E5="","",IF((H$3>=$F5)*AND(H$3<=$G5),IF($A5="",IF($B5="",3,2),1),"")) $E5=工数 手入力 H$3= 日にち  非稼働日を設定するシートに全体の開始日(工程表の開始日)を入力する欄がありそこを参考にしているようです シート名:休日設定  数式 =休日設定!B3    $F5=開始日 手入力 $G5=完了日 =IF(E5="","",WORKDAY(F5,E5,非稼働日)-1) が入ってるセルです $A5=工種を入力するセル ここに文字を入力すると工程日の背景色が変わります。 $B5=タスクを入力するセル ここに文字を入力すると工程日の背景色が変わります。 以上の内容です。 (だいく) 2022/05/11(水) 13:07 ---- 最初にこれを確認しとくべきだった。 そのシートに設定されている条件付き書式の設定はどうなっているだろうか? (現在私の環境ではだいくさんの示したリンク先からダウンロードできないためこちらでは確認できず) (ねむねむ) 2022/05/11(水) 13:48 ---- ねむねむ様 ご返信ありがとうございます。 条件付き書式の設定は =MATCH(G$3,非稼働日,0)>0 となっておりました。 (だいく) 2022/05/11(水) 14:06 ---- 追記 驚くほど簡単に建築工事の工程表が作れる無料エクセルテンプレート5選 というページのHotateの苦悩というページに飛んだところでDLしました。 (だいく) 2022/05/11(水) 14:09 ---- >=MATCH(G$3,非稼働日,0)>0 これは休日の場合でしょ? セルの値が 1〜3 によって塗りつぶしの色を変えてるんだと思いますけど 実際そんな必要があるんですか? >=IF(E5="","",WORKDAY.INTL(F5,E5,"0000000",非稼働日)-1) >としましたがうまくいきませんでした。 うまくいかないとは、正しい完了日にならないということ? だとしたら、E5、F5にそれぞれ何が入力されていて ○○になってほしいのに××になってしまうと、具体的な日付でお答えください。 以上 (笑) 2022/05/11(水) 15:13 ---- 笑様 返信ありがとうございます。 セルの値が 1〜3 によって塗りつぶしの色を変えてるんだと思いますけど 実際そんな必要があるんですか? → ありません。一色で十分です。 うまくいかないとは、正しい完了日にならないということ? → #NEME?と出ます。カレンダー側もそうなります。 E5=工数(作業予定日数)手入力 F5=開始日 手入力 G5=完了日 =IF(E5="","",WORKDAY(F5,E5,非稼働日)-1) 要望としては 5月1日から7日間の工数の場合、カレンダー側で土日を挟んだ場合のみ、土日を含んだ9日間分が塗りつぶされてしまうんです。なので5月1日が月曜日の場合、5月1日から土曜日の6日までを塗りつぶし、8日が飛んで塗りつぶされるよう設定したいのです。単色で十分です。   勉強不足ですいません。 (だいく) 2022/05/11(水) 16:17 ---- >#NEME?と出ます。  #NAME? ですよね。 >=IF(E5="","",WORKDAY(F5,E5,非稼働日)-1) >=IF(E5="","",WORKDAY.INTL(F5,E5,"0000000",非稼働日)-1) 上の式では日付が表示されるのに、下の式は #NAME? になるってこと? Excelのバージョンが本当に 2019 なら、そんなことにはならないと思いますけど? 数式のスペルミスでは? もう一度よく数式を確認してください。 >5月1日が月曜日の場合、5月1日から土曜日の6日までを塗りつぶし、 >8日が飛んで塗りつぶされるよう設定したいのです。 5月7日が非稼働日ってこと? 単色でいいのなら、セルに数式を入れなくても条件付き書式だけで十分だと思います。 まずは WORKDAY.INTL の数式を確認してください。 とりあえず以上です (笑) 2022/05/11(水) 16:57 ---- >=IF(E5="","",WORKDAY.INTL(F5,E5,"0000000",非稼働日)-1)  ↓ の方がいいかも =IF(E5="","",WORKDAY.INTL(F5-1,E5,"0000000",非稼働日)) ~~~~~ あまり検証してませんけど、とりあえず・・・ これでも #NAME? になるんだったら、もしかして別ファイルで試してませんか? だとしたら「非稼働日」を名前定義していないのでは? 以上 (笑) 2022/05/11(水) 17:26 追記 23:27 ---- 先に言っておくと・・・ 条件付き書式の数式は ↓ の2つだけ ※セルに入れている数式(カレンダー内の関数)は必要ありません =MATCH(H$3,非稼働日,0)    ←「条件を満たす場合は停止」にチェック =AND(H$3>=$F5,H$3<=N($G5))  ← N($G5) の N は関数 ルールの種類はどちらも「数式を使用して、書式設定するセルを決定」 念のため、ファイルを別名で保存して、別名の方で試してください。 以上 (笑) 2022/05/11(水) 18:09 追記 23:27 ---- ダウンロードして表をいじってみました。 シート名 Config |[A]|[B] |[C] |[D] [1]| | | | [2]| |開始日 |非稼働日 |曜日 [3]| |2022/5/1|2022/5/1 |日 [4]| | |2022/5/8 |日 [5]| | |2022/5/15|日 [6]| | |2022/5/22|日 [7]| | |2022/5/29|日 セル範囲 C3:23  名前「非稼働日」 シート名 Config のデータを日にまとめる このシート名 Config で非稼働日を設定しているようです。 カレンダーは日曜だけ縦にグレーで表示されました。 日曜も塗りつぶしされません。 使用されている式と条件付き書式 |[A] |[B]|[C]|[D] |[E] |[F] |[G]|[H]|[I]|[J]|[K]|[L]|[M]|[N]|[O]|[P]|[Q]|[R]|[S]|[T]|[U]|[V]|[W]|[X]|[Y]|[Z]|[AA]|[AB] [2]| | | | | | | 5| | | | | | | | | | | | | | | | | | | | | [3]| | | | | | | 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| 11| 12| 13| 14| 15| 16| 17| 18| 19| 20| 21| 22 [4]|ワークタイトル| | |工数|開始日|完了日|日 |月 |火 |水 |木 |金 |土 |日 |月 |火 |水 |木 |金 |土 |日 |月 |火 |水 |木 |金 |土 |日 [5]|AAA | | |7 日|5/2 |5/10 | | 1| 1| 1| 1| 1| 1| 1| 1| 1| | | | | | | | | | | | [6]| |BBB| |7 日|5/11 |5/19 | | | | | | | | | | | 2| 2| 2| 2| 2| 2| 2| 2| 2| | | [7]| | |CCC|7 日|5/5 |5/15 | | | | | 3| 3| 3| 3| 3| 3| 3| 3| 3| | | | | | | | | 条件付き書式        範囲 =MATCH(G$3,非稼働日,0)>0 =$G$5:$BR$31 非稼働日の色 セルの値 = 1 =$G$5:$BR$31 ワークタイトル階層別色 セルの値 = 2 =$G$5:$BR$31 ワークタイトル階層別色 セルの値 = 3 =$G$5:$BR$31 ワークタイトル階層別色 数式 F5=IF(D5="","",WORKDAY(E5,D5,非稼働日)-1) G4=WEEKDAY(G3,1) 曜日 G3=Config!B3 非稼働日設定表  G2=G3 ユーザー定義「m」 H2=G3+1 日付 G5=IF($D5="","",IF((G$3>=$E5)*AND(G$3<=$F5),IF($A5="",IF($B5="",3,2),1),"")) 色分け >日数分の塗りつぶしの設定はどうすればいいでしょうか。 シート名 Config のデータを日曜にまとめて確認してみてください。 シート名 Config のデータを書き換えていなかったのではないかと思いますけど。 (nm) 2022/05/11(水) 22:39 ---- >日曜も塗りつぶしされません。 日数分の塗りつぶしです。 (nm) 2022/05/11(水) 22:54 ---- ↑ なんで非稼働日に日曜日の日付を入れてるんですかね? WORKDAY 関数だったら、入れなくても同じことでは? 土曜日も非稼働日になりますし・・・ それと3色に塗り分ける必要はないってこと、わかってます? 以上 (笑) 2022/05/11(水) 23:34 ---- 今日改めて、みなさんから教えて頂いた内容を見返しながら最初から作り直していたらちゃんと治りました。 人的な問題でお騒がせしてすいません。 ありがとうございました。 (だいく) 2022/05/12(木) 09:48 ---- >それと3色に塗り分ける必要はないってこと、わかってます? nm へのコメントですよね。 分かっていますよ。 ダウンロード先の表がそのようになっているということです (nm) 2022/05/12(木) 10:14