[[20200304210640]] 『稼働日数後の日付を得るには?』(八紘一宇) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『稼働日数後の日付を得るには?』(八紘一宇)

Excelでタスク管理を行いたいので、タスクの開始日付から所要日数をプラスした日付(タスク終了日)を得るには、次の2通りの場合に、どのような関数を使えばよろしいのでしょうか?
(その1)例えば、土日祝日が休日の場合(暦通り)


タスク名、タスク開始日、所要日数、 タスク終了日
タスクa、20/03/01、5、20/03/06
タスクb、20/03/02、5、20/03/06
タスクc、20/03/03、5、20/03/09

タスクaについては開始日に、うっかり休日を入力しても
タスクbと同じタスク終了日になります。
(その2)休日出勤を考慮する場合(土日を休日としてカウントしない)

タスク名、タスク開始日、所要日数、 タスク終了日
タスクa、20/03/01、5、20/03/05(←日曜日に作業あり)
タスクb、20/03/02、5、20/03/06
タスクc、20/03/03、5、20/03/07(←土曜日に作業あり)

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


 NETWORKDAYS関数でいいんでないの?
(GobGob) 2020/03/05(木) 11:49

 行列番号がわかるように表を提示してください。

 その1)
 祝日を考慮する場合はどこかに祝日(土日以外の休日)の日付を入力しておく必要があります。

 J2:J100 が祝日の日付だとして

 D2 =IF(COUNT(B2:C2)<2,"",WORKDAY(B2-1,C2,$J$2:$J$100))

 その2)
 普通に足し算だと思いますけど・・・

 D2 =IF(COUNT(B2:C2)<2,"",B2+C2-1)

 どちらも表示形式「日付」

 こういうこと?
(笑) 2020/03/05(木) 12:23

GobGobさん、ありがとうございます。行列番号がなくて申し訳ありませんでした。
早速ですが、(その1)のCOUNT関数(数値が入力されているセルの個数)が使用されているのはなぜでしょうか?
(その2)については、休日出勤がある場合を想定して、「休日」を任意に定めて別の所にその日付を入力しておきます。そして、3/5、3/7はこの「休日」の中に入れませんが、他の土日は祝日も含めて休日扱いです。
土日を最初から休日扱いするWORKDAY,NETWORKS関数が使えないと思い、質問させていただきました。
(八紘一宇) 2020/03/06(金) 21:03

 NETWORKDAYS関数とCOUNTIFS関数でいいんでないっすか?

 =NETWORKDAYS(稼働日) + COUNTIF(休日出勤日をカウント)
(GobGob) 2020/03/07(土) 07:46

 よくよく見返したらお門違いな回答やね。。。
 再考します。
(GobGob) 2020/03/07(土) 08:18

 力づく案w。

 条件
  ・稼働日数は100位にする(365日範囲にしてますがw)
  ・休日範囲はF列〜Z列(タスクごと)
  ・祝日考慮なし

	A	B	C	D	E	F	G	H	I	J	K
1	タスク	開始日	日数	終了日 		休出					
2	A	3/1 日	5	3/5 木		3/1 日	3/7 土				
3	B	3/2 月	5	3/6 金							
4	C	3/3 火	5	3/7 土		3/7 土					
5	D	3/2 月	6	3/7 土		3/7 土					
6	E	3/7 土	6	3/13 金		3/8 日					
7	F	3/7 土	10	3/16 月		3/7 土	3/8 日	3/14 土	3/15 日		

 D2 =AGGREGATE(15,6,(B2-1+ROW(A$1:A$365))/((MMULT((WEEKDAY(B2-1+ROW(A$1:A$365))<>{1,0,0,0,0,0,7})*1,{1;1;1;1;1;1;1})=7)+COUNTIF(F2:Z2,B2-1+ROW(A$1:A$365))),C2)
(GobGob) 2020/03/07(土) 09:05

 GobGob さんではありませんが・・・
 >COUNT関数(数値が入力されているセルの個数)が使用されているのはなぜでしょうか? 

 使わなくても全く問題ないのなら外してください。

 D2 =WORKDAY(B2-1,C2,$J$2:$J$100)
 ↑ の式でB2、C2が空白の場合どうなるかを見れば COUNT 関数を使っている意味もわかるでしょう。
 よかれと思ってやったことが余計なお世話だったようです。

 ■その2
 基本は土日祝が休日で、たまに休日出勤があるってこと?

 1)休日出勤の日付を入力するのではなく、とりあえず土日の日付をすべて入力
  1つ1つ入力しなくても
  例えば J1セルに 3/1
      J2セルに 3/7 を入力
  J3セルに =J1+7 を入れ、必要なだけ下にオートフィル
      ↓
  日付をコピーし、形式を選択して貼り付け「値」

 2)祝日の日付も入力(同じ列に)

 3)休日出勤の日はJ列のリストから消す
  3/1、3/7が休日出勤なら、J列の3/1、3/7をDeleteキーで消去

	B	C	D
1			
2	3/1(日)	5	3/5(木)
3	3/2(月)	5	3/6(金)
4	3/3(火)	5	3/7(土)

 WORKDAY.INTL 関数を使う
 D2 =WORKDAY.INTL(B2-1,C2,"0000000",J:J)

 ※J列は列全体を指定しているので、見出しなど文字列を入力しないように(エラーになる)

 以上、参考まで
(笑) 2020/03/07(土) 13:02

コメント返信:

[ 一覧(最新更新順) ]


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