• ベストアンサー

最終営業日がうまく算出されません

最終営業日を算出するために、以下のように関数を使用しています。 -------------------------------------------------- H1:月初の日付を入力 ⇒2009/5/1 H2:下記の関数で月末を求める    =EOMONTH(H1,0) ⇒2009/5/31 H3:下記の関数で最終営業日の1日前を求める    =WORKDAY(H2,-1,data!D1:D36) ここでH3には、今月の最終営業日は5/29なので5/28と求められて 欲しいのですが、5/29と求められてしまいます。 同様に最終営業日から2日前、5日前と他のセルで求めてたりして いますが、同様に1日ずれてしまっています。  2日前:=WORKDAY(H2,-2,data!D1:D36)  5日前:=WORKDAY(H4,-2,data!D1:D36)  ※H4に上の2日前の値を求めようとしています H5に最終営業日を一応求めるために下記のように関数を使い5/29と求められています。  =WORKDAY(EOMONTH(H2,0)+1,-1,data!D1:D36) WORKDAY関数の使い方が悪いのか、数式自体が間違っているのか 分からなくなってしまい困っております。 間違っている部分など、ご教示いただけませんでしょうか。 よろしくお願い致します。

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

  • ベストアンサー
回答No.1

> 下記の関数で最終営業日の1日前を求める でも、H3の式には最終営業日の話がどこにも書いてありませんよ。 月末の1営業日前と書いてあります。あなたがH5でやったように最終 営業日を計算して、その1営業日前を出すのがいいでしょう。当月の 最終営業日は、翌月1日の1営業日前です。

Torizoh
質問者

お礼

ご教示ありがとうございます。 よく見ずに悩んでいたことに気がつきました。 ご指摘いただいて、数式に不備があることに気がつきました。 本当にありがとう御座いました。

その他の回答 (1)

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

こんばんは! 回答になるかどうか判りませんが・・・ EOMONTHで月末を指定した場合、土・日がその日に当たると正確に表示されないと思います。 そこで提案ですが、月初めの日付入力セルをA1 月末を表示するセルをB1とした場合 B1セル=IF(OR(WEEKDAY(EOMONTH(A1,0))=6,WEEKDAY(EOMONTH(A1,0))=1),WORKDAY(EOMONTH(A1,0),-1),EOMONTH(A1,0))として 1日前のセル=WORKDAY(B1,-1) 2日前のセル=WORKDAY(B1,-2) 5日前のセル=WORKDAY(B1,-5) としてみてはどうでしょうか? 尚、祭日の指定をしていませんので、万一祭日が非営業日だとすると 月末を指定する数式は、もう少しややこしくなると思います。 (○日前の方はWORKDAY関数ですので単純にマイナスすれば問題ないと思います。) この程度の回答ですが、 的外れなら読み流してください。m(__)m

Torizoh
質問者

お礼

ご教示ありがとう御座います。 H5で使用した数式を利用して、解決する事が出来ました。 よく見ずに質問を投稿してしまい、貴重なお時間を頂いてしまったこと お詫びいたします。すみませんでした。

関連するQ&A