• ベストアンサー

エクセルで、土日祝日を含んだ指定日数の後に

こんにちは。 早速ですが、エクセルで最初に作業した日から○○日後に点検する。その際点検日が土日祝日の場合は翌営業日とする。というのを設定したいのですが、どのような設定をすればよいのでしょうか? 例えば 最初の作業日  2009/9/7 点検間隔    15日 点検日     2009/9/** 通常の設定では**が22になりますが、9月22日は祭日のため24日になるようにしたいのです。 祭日リストは別途作って指定する予定ですが、設定方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.8

No.6です! たびたびごめんなさい。 前回の回答では 点検間隔が変わると対応できませんので B3セルの数式を =IF(COUNTBLANK(B1:B2)>0,"",WORKDAY(B1+B2-1,1,E2:F23)) に訂正してください。 どうも何度も失礼しました。m(__)m

tsu_chan
質問者

お礼

tom04さん 無事できました。 祝日データ(5年分)の1か所に間違い(2009/mm/ddと入れるところ209/mm/ddとなっておりました)があったため、エラーとなってしまったようです。 修正したところ、無事解決しました。 本当にいろいろ、ありがとうございました。

tsu_chan
質問者

補足

tom04さん いろいろとアドバイス、ありがとうございます。 教えていただいた通りやってみたのですが『#VALUE!』エラーとなります。 ちなみに、参照画像通りやっても(祝日データは別ワークシートの設定ですが)同じエラーとなりました。 どこがいけないのでしょう?

その他の回答 (7)

回答No.7

再補足です。 WORKDAY関数は営業日を足していきます、よって15日後ではなく15営業日後になります。 よって、No2さんのように15日後の日付の前日(-1)にして、間隔を1日後に設定されたほうが、質問者様の要望に応えられると思います。

tsu_chan
質問者

お礼

アドバイスありがとうございます。 日付の前に(-1)を入れることで、狙い通りできました。 ありがとうございました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.6

こんにちは! WORKDAY関数で対応できると思います。 Excel2003以前のバージョンでは メニュー → ツール → アドイン → 「分析ツール」にチェックを入れておく必要があります。 ↓の画像のB3セルに =IF(COUNTBLANK(B1:B2)>0,"",WORKDAY(B1+15-1,1,E2:F23)) という数式が入っています。 これで希望通りに表示されるはずです。 尚、祝日のデータは画像では2009・2010年までで、E2~F23まであります。 蛇足ですが、 WORKDAY関数で単純にB3セルを =WORKDAY(B1,B2,E2:F23) としてしまいますと、B1の日付から土日・祝日を除いた15日後が表示されてしまいますので、 数式の説明としてはB1の日付から15日後より1日前から 土日・祝日を除いた1日後を表示させるようにしています。 以上、参考になれば幸いです。m(__)m

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.5

No.3です。 失礼!土日祝祭日を除いた15日後の日付と勘違いしていました。

tsu_chan
質問者

お礼

アドバイスありがとうございました。 土日を除く稼働日での計算は、インターネット等で探せたのですが、土日を含んだ日数をカウントし、その結果が土日の場合、翌営業日にするというのがなかなか見つからず、質問させていただきました。 すぐにアドバイスいただけたことに感謝します。

回答No.4

No2さんと同じです 念の為、補足します WORKDAY関数は、一般の関数には入っていませんので次のように設定してください メニュー[ツール]-[アドイン]をクリックして表示される[アドイン]の中で[分析ツール]にチェックをONしてOKを押す 上記でWORKDAY関数が使えるようになります

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.3

アドインで「分析ツール」を有効にしておいてください。 最初の作業日がA1に、祝祭日がC1:C7に在る場合、↓で出ます =WORKDAY(A1,15,C1:C7)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

一例です。 作業日をA1、間隔日をA2、祝日リストをB1:B10範囲(作業日と同様の書式で設定) =WORKDAY(A1+A2-1,1,$B$1:$B$10)

tsu_chan
質問者

お礼

アドバイスありがとうございます。 WORKDAY関数は、土日を含まないので、今回の目的には合わないと考えていました。 今一度頭の中を整理して考えてみます。 ありがとうございました。

  • root_16
  • ベストアンサー率32% (674/2096)
回答No.1

最初の作業日、点検間隔、計算日付(1)、曜日数値、計算日付(2)、・・・ 考え方としては最初の作業日に点検間隔の日付を足して、 計算日付(1)を出し、 WEEKDAY関数で1~7(または0~6)の曜日番号を出して、 土曜日にあたる数字だったら2を足し、 日曜日だったら1を足して計算日付(2)を出します。 そして、その計算日付(2)が祝日にあたるかを 判定して、次の日の曜日を判定し・・・ という感じだと思います。 ・・・の部分を何回やらないといけないかは考察してません。

tsu_chan
質問者

お礼

アドバイスありがとうございました。 今回のデータ処理が、数年後までなので、結構作業としては大変そうです。 もう少し、楽に作業できる方法を考えてみます。 ありがとうございました。

関連するQ&A