- 締切済み
エクセルの日付の計算の仕方
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- kagakusuki
- ベストアンサー率51% (2610/5101)
>休みの日を除外した一週間前 とは、「『納期の日』から『関数によって求めた日付』にかけての期間中に営業日が7日ある様にする」という事ではなく、あくまで「『納期の日』の一週間前の日付に最も近い営業日の日付」と考えれば宜しいのでしょうか? 只、「一週間前の日」が >土日祝それとお盆や正月休みなど に該当する休日である場合には、「一週間前の日付に最も近い営業日の日付」を「一週間前の日付の直前の営業日」にすれば良いのか、それとも「一週間前の日付の直後の営業日」にすれば良いのかという事が問題になりますが、[納期]に関する話という事は「直後の営業日」ではなく、「直前の営業日」を求める様にすれば宜しいのでしょうか? もしそれで宜しければ、以下の様なやり方となります。 まず、パソコンはいつの日が土日であるのかという事は計算で求める事は出来ても、質問者様の職場の休日がどの日なのかなどという事は知る由もありませんから、 >祝それとお盆や正月休みなど の土日以外の休業日の一覧表を作っておく必要があります。 ここでは仮の話として、Sheet2のA2以下に休日となる日付のリストを入力しておくものとします。 尚、休日のリストに日付を入力する際には、例えば 2015/8/15 などの様に必ず年月日を指定する様にして下さい。 又、リストの途中に日付ではなく、文字列データ(関数によって返される値が""の場合も含む)が入力されているセルが挟まっていますとエラーとなってしまいますので注意して下さい。 次に、御質問にある納期等が入力されているシートのF2セルに次の関数を入力して下さい。 =IF(ISERROR(1/DAY($E2)),"",WORKDAY($E2-6,-1,IF(COUNTIF(Sheet2!$A:$A,">=1"),INDEX(Sheet2!$A:$A,ROW(Sheet2!$A$1)+1):INDEX(Sheet2!$A:$A,MATCH(9E+307,Sheet2!$A:$A)),"1904/1/3"))) 次に、F2セルの書式設定を[日付]に設定して下さい。 次に、F2セルをコピーして、F3以下に貼り付けて下さい。 以上です。