• ベストアンサー

エクセル nヶ月後の日付を求める

エクセルでnヶ月後の日付(納期)を出したいのですが、 nヶ月後が土日、祝祭日だった場合、翌営業日を納期として 求める事ができる計算式を作りたいと思っています。 例えばnヶ月後が4月11日(土)である場合は4月3日(月)が納期、 nヶ月後が4月29日(水)である場合は4月30日(木)という感じです。 その計算式が入った2009年度の納期表を作りたいと思っています。 エクセル初心者でよくわからないのですが、どなたかご存知の方 がいらっしゃいましたら教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • telescope
  • ベストアンサー率54% (1069/1958)
回答No.3

WORKDAY関数を使います。 WORKDAY(開始日, 日数, 祭日) WORKDAY関数は、「ツール」メニューからアドインの「分析ツール」をオンにすると利用可能になります。 祝祭日は、年により異なることがあり、コンピュータにはわかりませんから、一覧表を作っておきます。 09/0101 09/01/12   ・   ・ 09/12/23 納期が土日祝祭日にかからないようにするには、「納期の前日の1営業日後」を求めればよいので、 まず、納期の前日を求めます。 A1セルに日付があるとして、 =DATE(YEAR(A1),MONTH(A1)+n,DAY(A1)-1) この翌営業日は 祭日の表が、G1からG15にあるとすると、 =WORKDAY(DATE(YEAR(A1),MONTH(A1)+n,DAY(A1)-1),1,$G$1:$G$15)

PVA
質問者

補足

telescopeさん 回答ありがとうございます。 試しに下の通りやってみたのですが、#NAME?と出てきてしまい、上手くできませんでした。(分析ツールもONにしています) A1~A30に2009/4/1~2009/4/30を入力 B1に=DATE(YEAR(A1),MONTH(A1)+n,DAY(A1)-1)を入力 なぜエラーがでてしまうのでしょうか。。。エクセルは素人でよくわからないのですが、教えていただけると大変助かります。 よろしくお願いします。

すると、全ての回答が全文表示されます。

その他の回答 (5)

  • takesun
  • ベストアンサー率40% (22/54)
回答No.6

No.3さんの補足になりますが、 nヵ月後の"n"は当然ながら数字をいれる必要があります。 >A1セルに日付があるとして、 >=DATE(YEAR(A1),MONTH(A1)+n,DAY(A1)-1) このnを直接指定(例えば2か月後)するのであれば、 上の式は=DATE(YEAR(A1),MONTH(A1)+2,DAY(A1)-1) としてください。そうでないと#NAME?のエラーになります。 別セルにnを指定するなら、例えばC1セルへ2と入力して、 =DATE(YEAR(A1),MONTH(A1)+C1,DAY(A1)-1) >この翌営業日は >祭日の表が、G1からG15にあるとすると、 >=WORKDAY(DATE(YEAR(A1),MONTH(A1)+n,DAY(A1)-1),1,$G$1:$G$15) こちらの式も、このまま入力するのではなく、nの部分を変更して、 =WORKDAY(DATE(YEAR(A1),MONTH(A1)+2,DAY(A1)-1),1,$G$1:$G$15) または =WORKDAY(DATE(YEAR(A1),MONTH(A1)+C1,DAY(A1)-1),1,$G$1:$G$15) とします。

PVA
質問者

お礼

takesunさん あっ、できました!すごいですね!! nに数字を入れないといけなかったのですね。 すみません。。。ご丁寧に解説していただき大変助かりました。 ありがとうございました。

すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

No.4です。 数式を書き込んでいませんでした。 B2=IF(ISERROR(VLOOKUP(EDATE(A2,3),$E$3:$F$19,1,0)),IF(WEEKDAY(EDATE(A2,3))=7,EDATE(A2,3)+2,IF(WEEKDAY(EDATE(A2,3))=1,EDATE(A2,3)+1,EDATE(A2,3)))) という数式にしています。 ほんとぉ~に!ごめんなさい。m(__)m

PVA
質問者

お礼

tom04さん いえいえ。何度もありがとうございます。 初心者の私には少々難解なので、時間をかけて数式を理解したいと思います。 遅くまでありがとございました。

すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

No.1・2です! 何回もごめんなさい! どうしても祝祭日の件がクリアできそうにありません。 苦肉の策ですが、今年の祝祭日のデータを利用して 納期が祝祭日にあたる日を「FALSE」で表示させるようにしてみました。 時間があればじっくり考えてみようと思います。 どうも何度も失礼しました。m(__)m

すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

No.1です! たびたびごめんなさい! 前回の回答では祝祭日のデータは入っておりません。 祝祭日に関しては表か何かにして、 別途条件付けをしてやらなければならないと思います。 どうも失礼しました。m(__)m

PVA
質問者

お礼

tom04さん 早速の回答ありがとうございます。 私もいろいろやってみたのですが、土日の次の営業日までは なんとか計算式が作れるのですが、祝祭日の条件付けで わからなくなりその先に行けず困っています。 もう少し自分でも調べてみます。 お忙しいところ回答いただきましてありがとうございました。

すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 一例ですが・・・ nヶ月後を3ヶ月と仮定してやってみました。 当方使用のExcel2003での回答になります。 EDATE関数を使いますので、 メニューバーの「ツール」→「アドイン」の中の「分析ツール」にチェックを入れておいてください。 A列に受注日・B列に納期としています。 かなり長い数式になりますが、 B1セル==IF(WEEKDAY(EDATE(A2,3))=7,EDATE(A2,3)+2,IF(WEEKDAY(EDATE(A2,3))=1,EDATE(A2,3)+1,EDATE(A2,3))) として下へオートフィルでコピーしています。 他に簡単な方法があるかもしれませんが、 コレくらいしか思い浮かびませんでした。 以上参考になれば、幸いです。m(__)m

すると、全ての回答が全文表示されます。

関連するQ&A