• ベストアンサー
  • すぐに回答を!

【Excel2000】土・日曜日を考慮した日付+α

  • 質問No.6845095
  • 閲覧数221
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 97% (362/372)

現在セルB1には『A1に入力した日の月末日付+月末休日の場合は前日』が出るようにしてあります。

セルA1 = 日付
セルB1 = IF(WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,0))=1,(DATE(YEAR(A1),MONTH(A1)+1,0))-2,IF(WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,0))=7,(DATE(YEAR(A1),MONTH(A1)+1,0))-1,DATE(YEAR(A1),MONTH(A1)+1,0)))

ここに『A1が25日以降の場合は翌月20日+翌月20日が休日の場合は後日』という設定を加えたいのですが、可能でしょうか?

 ・A1 = 2011/07/10 → (結果) B1 = 2011/07/29(金)
 ・A1 = 2011/07/25 → (結果) B1 = 2011/08/22(月)

どうしても不可能であれば別セル(C1など)でも構いません。

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

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

ベストアンサー率 49% (2537/5117)

こんにちは!
休日は土日だけで祝日は考慮しなくて良いわけですよね?

一例です。
せっかく数式をお考えですが、

表示したいセルに
=IF(DAY(A1)>24,WORKDAY(DATE(YEAR(A1),MONTH(A1)+1,20)-1,1),WORKDAY(EOMONTH(A1,0)+1,-1))
(エラー処理はしていません)
としてみてはどうでしょうか?

尚、WORKDAY関数・EOMONTH関数を使用するにあたり、当方使用のExcel2003以前のバージョンでは
メニュー → ツール → アドイン → 「分析ツール」にチェックを入れておく必要があります。

以上、参考になれば良いのですが
他に良い方法があればごめんなさいね。m(_ _)m
お礼コメント
KO1014

お礼率 97% (362/372)

ご回答ありがとうございました。
できました!!
当方のExcel2000でも「分析ツール」にチェックを入れておかないといけないようです。
「WORKDAY」「EOMONTH」はどちらも使い方が分からない関数なので提示していただいた数式は理解できませんが、非常にシンプルな数式で良いですね。
投稿日時:2011/06/30 16:48

その他の回答 (全1件)

  • 回答No.2

ベストアンサー率 31% (587/1853)

=IF(DAY(A1)<25,DATE(YEAR(A1),MONTH(A1)+1,0)-IF(WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,0),2)>5,WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,0),2)-5),DATE(YEAR(A1),MONTH(A1)+1,20)+IF(WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,20),2)>5,8-WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,20),2),0))

1つのセルで計算しようとすると、こんな感じですかね。
ただ、長すぎて、他の人がメンテナンスするときに困りそうですね。

作業セル(隠しセル)を使ったほうが、解りやすいかもしれませんね。
C1で、休日を無視した日付を計算して、
=IF(DAY(A1)<25,DATE(YEAR(A1),MONTH(A1)+1,0),DATE(YEAR(A1),MONTH(A1)+1,20))
B1に、休日の条件も踏まえた日付を表示するとか。
=IF(WEEKDAY(C1,2)<=5,C1,IF(DAY(A1)<25,C1-(WEEKDAY(C1,2)-5),C1+(8-WEEKDAY(C1,2))))
そうすれば、セルの数は増えますが、入力する式の長さは半分くらいに減ります。その上、他の人にも(あなた自身にも)解りやすくメンテナンスしやすいと思います。

C1は別のセルでも良いです。
目に付かないセルにするなり、文字を白くするなりしても良いでしょう。
お礼コメント
KO1014

お礼率 97% (362/372)

ご回答ありがとうございました。
できました!!
やはり1つのセルで処理しようとすると長~い式になってしまいますね。

>長すぎて、他の人がメンテナンスするときに困りそうですね
確かに・・・

作業セル(隠しセル)を使った方の数式では、はじめ見た時はB1が理解できませんでしたが、調べたら1=月曜日から始まる場合もあるなんて初めて知りました。勉強になりました。


初心者の当方にはこちらの数式が分かりやすいと思いましたが1番の方の数式がシンプルなので、大変申し訳ありませんが1番の方をベストアンサーとさせていただきます。
投稿日時:2011/06/30 16:48
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ