『カレンダーの色分け』(直) カレンダーを営業日ごとに色分けしたいです。 平日営業日は交互にセルの色を色分け、土日祝の休日は前日営業日の色にしたいです。 C1に西暦 F3に月の数字 C5がカレンダーの始まりです。 C5は=DATE(C1,F3,1)-WEEKDAY8DATE(C1,F3,1))+1 C6からはC5+1で 日曜日始まり、1週間で行が変わります。 祝日(リスト)、土日、前月と後月の日付の文字色は条件付き書式で変更しています。  例) 11日は祝日 C5 C6 C7 C8 C9 C10 C11 日 月 火 水 木 金 土 1 2 3 4 5 赤 黄 赤 黄 黄 6 7 8 9 10 11 12 黄 赤 黄 赤 黄 黄 黄 よろしくお願いいたします。 < 使用 アプリ:Excel LTSC 、使用 OS:Windows11 > ---- > C5 C6 C7 C8 C9 C10 C11 列の間違いですよね。 (?) 2024/04/11(木) 16:33:16 ---- (?)さん はい。すみません間違いです。 C5 D5 E5・・・と続きます。 曜日はC4〜I4に入力されています。 (直) 2024/04/12(金) 14:12:10 ---- >=DATE(C1,F3,1)-WEEKDAY8DATE(C1,F3,1))+1 WEEKDAY8DATEってどういう意味なんですかね。 それでよくカレンダーができましたね。 (わからん) 2024/04/12(金) 16:56:25 ---- C6の条件式 赤:=LET(fd,DATE($C$1,$F$3,1),IF(EOMONTH(C5,-1)<>fd-1,0,MOD(NETWORKDAYS(fd,C5,祝日),2)=NETWORKDAYS(fd,fd,祝日))) 黄:=LET(fd,DATE($C$1,$F$3,1),IF(EOMONTH(C5,-1)<>fd-1,0,MOD(NETWORKDAYS(fd,C5,祝日),2)<>NETWORKDAYS(fd,fd,祝日))) (半平太) 2024/04/12(金) 20:14:33 ---- >WEEKDAY8DATEってどういう意味なんですかね。 すみませんこちらも間違いです。 DATE(C1,F3,1)-WEEKDAY(DATE(C1,F3,1))+1 でした。 (直) 2024/04/18(木) 12:44:00 ---- 半平太さん 返信遅くなってしまい申し訳ありません。 作業しておりますPCがセキュリティー上USBが挿せず、 インターネット接続もされておらず、なかなか作業に取り掛かれませんでした。 ご教授頂きました方法で変更する事が出来ました。 これで年末作業が1つ減りました。 本当にありがとうございました。 (直) 2024/04/23(火) 16:03:43 ---- >洋平太さん 先日はありがとうございました。 1ヶ月ごとの設定はできたのですが、これらを年間での設定はできませんでしょうか。 西暦を変更すると、月の始まりが赤だったり黄色だったり年ごとに変わるので 変更する時は、月ごとに条件付き設定で変更しています。 (直) 2024/05/16(木) 13:46:13 ---- 月初の色と、その前月末の色の連続性が必ずしも一致しないけどいいのかなあ、 と思っていました。(でも質問者さんが納得しているなら.....) 次のようなシートを別途作成しておき、これを利用するような原始的方法でよいのではないでしょうか。 A B F 1 2024/5/1 r 祝日をF列に列挙しておく 2 2024/5/2 (*) 3 2024/5/3 (*) =IF(OR(IFERROR(MATCH(A2,F:F,0)>0,0)>0, WEEKDAY( A2,2)>=6 ), B1, IF(B1="r","y","r") ) という式にして、以下コピーペイストします。 あとは、元シートに条件付き書式で、 VLOOKUPでB列を表引きして、"r"か"y"かで色を変えたらいいんじゃないでしょうか。 (xyz) 2024/05/16(木) 17:53:36 ---- ちょっと事情が呑み込めないのですが、  当初、1カ月分だけの話で、前月・後月には色を付けない。  初日は赤色でスタート と解釈したのですが、それが違う(ことになった)と言う話なんですか? (半平太) 2024/05/16(木) 19:44:30 ---- >xyzさん ありがとうございます。 別シートに作業用を別途作る方法、1度試してみます! >洋平太さん すみません。私の説明不足です。 カレンダー自体は年間カレンダーです。 前後月にも赤黄で塗りつぶしの色分けしていて、 初日が赤の場合と黄色の場合があります。 「祝日(リスト)、土日、前月と後月の日付の文字色は条件付き書式で変更」 と説明した事で誤解を招いてしまいました。 C D E F  G H I C4 日 月 火 水 木 金 土 C5 29 30 1 2 3 4 5 赤 黄 赤 黄 黄 C6 6 7 8 9 10 11 12 黄 赤 黄 赤 黄 黄 黄 C7 13 14 15 16 17 18 19 黄 赤... C8 20 21 22 23 24 25 26 赤 黄... C9 27 28 29 30 31 1 2 黄 赤...    黄 次の月 C10 日 月 火 水 木 金 土 C11 27 28 29 30 31 1 2              赤 赤 C12 3 4 5 6 7 8 9   赤 黄... 条件付き書式で1ヶ月ごとに、祝日と土日の文字色を赤色にしており、 初月のC5の29日30日、C9の1日2日や 次の月のC11、27〜31日などは文字色を薄いグレー色にしております。 薄いグレーにしている日付部分は、塗りつぶしにはしなくて良いです。 説明が下手でもうしわけないです。 (直) 2024/05/17(金) 13:39:14 ---- 補足です。 >前月と後月の日付の文字色は条件付き書式で変更しています。 とあるので、そこは言及していません。そこは今まで通りにしてください。 条件付き書式を三段階にすればよい、という認識でした。 (1)当月以外の日付部分を最上位かつ"条件を満たしたら停止"、 (2)赤色・黄色判定を第二順位、第三順位の判定にするということです。 そして、(2)の判定にあたっては、年間を通じた >平日営業日は交互にセルの色を色分け、土日祝の休日は前日営業日の色にしたいです。 というルールを実現する方法を書いた積りです。 (xyz) 2024/05/17(金) 15:06:36 ---- ふーむ、月には大小あるので、 レイアウトがちょっと腑に落ちないですけど、固い事は言わないことにして・・ 赤(上)、黄(下) =AND(ISNUMBER(C5),MOD(NETWORKDAYS(DATE(2024,10,1),C5,祝日),2) ,IF(ISTEXT(C4),DAY(C5)<=DAY($I5),DAY($C5)<=DAY(C5))) =AND(ISNUMBER(C5),MOD(NETWORKDAYS(DATE(2024,10,1),C5,祝日),2)=0,IF(ISTEXT(C4),DAY(C5)<=DAY($I5),DAY($C5)<=DAY(C5))) ※「日」、「月」などは、文字データであるものとします。 (半平太) 2024/05/17(金) 15:31:30 ---- >xyzさん 補足説明ありがとうございます。 また後日になりますが試してみます! >半平太さん なんとも説明下手ですみません・・・ 西暦の数値を変更すると、全ての月の日付けの位置が変わるように設定しておりまして、 文字データではなくて(泣) 現在あるカレンダー様式を作業用として、別場所に文字データとして表示させて、 ご教授頂いた書式を適用させる・・・という方法になりますでしょうか? (直) 2024/05/17(金) 16:27:41 ---- > 現在あるカレンダー様式を作業用として、別場所に文字データとして表示させて、 > ご教授頂いた書式を適用させる・・・という方法になりますでしょうか? そんなかったるい方法にはなりませんが、 一体どんな数式で、こんな結果を描けているのですか?            ↓ 行 __C__ _D_ _E_ _F_ _G_ _H_ _I_ 1 2024 2 3 10 4 日 月 火 水 木 金 土 5 29 30 1 2 3 4 5 6 6 7 8 9 10 11 12 7 13 14 15 16 17 18 19 8 20 21 22 23 24 25 26 9 27 28 29 30 31 1 2 10 日 月 火 水 木 金 土 11 27 28 29 30 31 1 2 12 3 4 5 6 7 8 9 特に曜日の行が、月の大小に呼応して、 自動的に10行目だったり、11行目だったり、移動する仕掛けをご説明ください。 (半平太) 2024/05/17(金) 17:00:15 ---- >半平太さん 前回の説明でC9の続きとしてC10と表記してしまっておりましたが、 C10までが1ヶ月で、F11に月の数字、C12の行に曜日、C13からC18までが日付で その後の月もF19に月、C20の行が曜日、C21〜26まで日付と続いていきます。 抜けておりまして申し訳ないです。 1ヶ月はすべて6行にしております。 1ヶ月の1行目1つ目のセルに =DATE(C1,F3,1)-WEEKDAY8DATE(C1,F3,1))+1 ←F3部分は月の数字のセルなので1ヶ月ごとに変更しています。 としております。 (直) 2024/05/20(月) 16:13:33 ---- >1ヶ月はすべて6行にしております。 日付を塗りつぶすのですか。 (?) 2024/05/20(月) 17:00:15 ---- 赤:=AND(C5<>"",MOD(NETWORKDAYS(36800,C5,祝日),2),LET(r,MOD(ROW()-5,8)=0,IF(r<3,DAY(C5)<22,IF(r<6,DAY(C5)>14,0)))) 黄:=AND(C5<>"",MOD(NETWORKDAYS(36800,C5,祝日),2),LET(r,MOD(ROW()-5,8) ,IF(r<3,DAY(C5)<22,IF(r<6,DAY(C5)>14,0)))) (半平太) 2024/05/20(月) 19:29:49