[[20240219114139]] 『旬単位のガントチャート作成』(にとりん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『旬単位のガントチャート作成』(にとりん)

以下のように旬単位でガントチャートを作成し、各タスクの開始日(B6以下B列)・終了日(C6以下C列)の期日を入力すると???の部分が塗りつぶされるようにしたいと考えております。

※B1:C2は行程全体の開始日・終了日を表示したものです。

D6以下塗りつぶしの条件付き書式に入れる数式を教えて頂きたいです、

上旬・中旬・下旬の定義は、シンプルに以下の通りです。

上旬:毎月1日〜10日
中旬:毎月11日〜20日
下旬:毎月21日〜各月末

	A	B	C	D	E	F	G	H
1		開始日	4/1					
2		終了日	8/31					
3				2024年				
4				4月			5月	
5	タスク	開始日	終了日	上旬	中旬	下旬	上旬	中旬
6	A作業	4/1	4/25	???	???	???
7	B作業	4/11	5/5		???	??? ???			
8	C作業	4/16	4/28		???	??? 			
9	D作業	4/23	5/13			??? ??? ??? 		
10	E作業							
11	…							
12								

宜しくお願い致します。

< 使用 Excel:Microsoft365、使用 OS:Windows10 >


 D5:4/1,E5:4/11,F5:4/21,G5:5/1・・・としてもよいのなら

 D6に条件付き書式を「数式」で = で($B$6<E5)*($C$6>=D5)=1 右にフィル ではいかがでしょうか?

 体裁はこのままでという条件でしたら思いつきません。

(jjj) 2024/02/19(月) 13:33:16


 >体裁はこのままでという条件でしたら思いつきません。 と書きましたが、

 上の式のE5,DEの部分をC1の日付と列番号から求めさせれば、体裁はそのままでいけると思います。

 =($B$6<EDATE($C$1,INT((COLUMN()-3)/3))+MOD((COLUMN()-3)*10,30))*($C$6>=EDATE($C$1,INT((COLUMN()-4)/3))+MOD((COLUMN()-4)*10,30))=1

(jjj) 2024/02/19(月) 14:59:14


 上の式のE5,DEの部分 → 上の式のE5,D5の部分 の間違い
(jjj) 2024/02/19(月) 15:01:16

jjjさんご回答ありがとうございます。
ちなみに、「D5:4/1,E5:4/11,F5:4/21,G5:5/1・・・としてもよいのなら」というのをまず先にやらなければならないのかなと推察致しますが、「上旬」「中旬」「下旬」のそれぞれを1日〜10日・11日〜20日・21日〜月末(最大31日)と定義付けするには、D5以降の5行目をどのようにすれば宜しいでしょうか?
(にとりん) 2024/02/19(月) 16:57:29

 私の提案は、当該セル(上旬、中旬、下旬)が指定した開始日と終了日の間にあるか否かを判定し、
 条件を満たしていれば塗りつぶすというものなので、どこかに日付データが必要となります。

 「D5:4/1,E5:4/11,F5:4/21,G5:5/1・・・としてもよいのなら」と書いたのは、上旬、中旬、下旬という
 表記ではなく判定のための日付データをそのセルの値とするという意味でした。

 なので、後からの数式を条件付き書式に設定すれば、体裁はそのままでOKだと思います。
 若しくは、日付データ用の行を1行追加して、非表示するなども考えられますが・・・

(jjj) 2024/02/19(月) 17:20:54


jjjさんありがとうございます。
なるほど、後から教えて頂いた↓こちらの数式を入れれば、「上旬」「中旬」「下旬」をそのまま残してもOKという意味ですね。
=($B$6<EDATE($C$1,INT((COLUMN()-3)/3))+MOD((COLUMN()-3)*10,30))*($C$6>=EDATE($C$1,INT((COLUMN()-4)/3))+MOD((COLUMN()-4)*10,30))=1
可能でしたらついでにもう一つご教示ください。
仮にA列に「番号」の項目を追加した場合、
INT((COLUMN()-3)/3)やINT((COLUMN()-4)/3)の"-3"や"-4"を変更しなければならないでしょうか?

(にとりん) 2024/02/19(月) 17:49:30


 =($B$6<EDATE($C$1,INT((COLUMN()-3)/3))+MOD((COLUMN()-3)*10,30))*($C$6>=EDATE($C$1,INT((COLUMN()-4)/3))+MOD((COLUMN()-4)*10,30))=1
 をばらして考えてればお分かりになると思いますが、

 EDATE($C$1,INT((COLUMN()-3)/3))+MOD((COLUMN()-3)*10,30))について、、
 D列ならINT(COLUMN()-3)/3)は、INT((4-3)/3) → 0 
        +MOD((COLUMN()-3)*10,30))は、MOD((4-3)*10,30) → 10
 つまり、EDATE(2024/4/1,0)+10 → 2024/4/11

 同様にEDATE($C$1,INT((COLUMN()-4)/3))+MOD((COLUMN()-4)*10,30))は、
 EDATE(2024/4/1,0)+0 → 2024/4/1

 B6が2024/4/11より小さく、2024/4/1以上であれば、TRUE*TRUEで[1]を返すので、塗りつぶし対象となる。

 したがって、列を挿入すれば、-3,-4の箇所も変更する必要があります。

 とここまで書いてなんですが、私なら参照用の行を挿入して、非表示にすると思います。

(jjj) 2024/02/19(月) 21:42:05


jjjさん、返答が遅くなりまして、すみませんでした。
やっと理解できました!
ありがとうございました!
(にとりん) 2024/02/20(火) 17:44:21

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.