• ベストアンサー

エクセルの関数で、休日の場合は前後の平日を表示したい

月末が休日の場合、末日を入力すると銀行の次営業日または前営業日が表示されるようにしたいと思っています。 自分では土曜の場合とか日曜の場合とか、一日ずつでしか設定できずに困っています。 よろしくお願いします。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

A1に日付を入れたとしてどこかのセルに下記の関数をいれ、セルの書式設定を日付にします。 土日なら金曜 =CHOOSE(WEEKDAY(A1,2),A1,A1,A1,A1,A1,A1-1,A1-2) 土日なら月曜 =CHOOSE(WEEKDAY(A1,2),A1,A1,A1,A1,A1,A1+2,A1+1) 意味が違うかな?

norineko
質問者

お礼

ご回答ありがとうございます。 その通りの意味です!分かってうれしいです。 さっそく使わせていただこうと思います。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

参考までにWEB照会で「kt関数」(アドイン)を出してみて 解説などを読んで見てください。結構大変な処理であるようです。 月末前営業日にしても、月末が土日であれば金曜を出せば良いような単純なものではないのでは? 例えば12月は銀行休業日は特別な処理が必要です。 http://www.loadsystem.net/excel/BankCalAddin.htm 各銀行とも今年来年などの日々のカレンダーを持って、(誤ったら大問題になるので)オペレーション部門が真剣に休日のメンテやチェックしているはずです。 ロジックによる判別方式より、テーブルを引く方式になるでしょう。 その辺ある程度で妥協するなら、EOMONTH、WEEKDAYなどを使うことになるでしょう。 参考までに、月末日は月数を+1した1日のマイナス1日で出ます。

norineko
質問者

お礼

ご回答ありがとうございます。 未熟者なのでアドインなどはよく分からないのです。すみません。 銀行休業日に対応する式があればいいナ~と単純に思っていましたが、 やっぱり難しいですね。 自分でチェックもしつつ資料作成しようと思います。 ありがとうございました。

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.2

次の式では、今月の月末が土曜か日曜の場合、翌月の第1月曜の日付を表示し、平日の場合は当月の末日を表示します。 =IF(WEEKDAY(DATE(YEAR(TODAY()),MONTH(TODAY())+1,1)-1,3)=5,DATE(YEAR(TODAY()),MONTH(TODAY())+1,1)+1,IF(WEEKDAY(DATE(YEAR(TODAY()),MONTH(TODAY())+1,1)-1,3)=6,DATE(YEAR(TODAY()),MONTH(TODAY())+1,1),DATE(YEAR(TODAY()),MONTH(TODAY())+1,1)-1)) 次の式では、今月の月末が土曜か日曜の場合、当月の最終金曜の日付を表示し、平日の場合は当月の末日を表示します。 =IF(WEEKDAY(DATE(YEAR(TODAY()),MONTH(TODAY())+1,1)-1,3)=5,DATE(YEAR(TODAY()),MONTH(TODAY())+1,1)-2,IF(WEEKDAY(DATE(YEAR(TODAY()),MONTH(TODAY())+1,1)-1,3)=6,DATE(YEAR(TODAY()),MONTH(TODAY())+1,1)-3,DATE(YEAR(TODAY()),MONTH(TODAY())+1,1)-1)) 今日が月末かどうかの判定は、以下の式で可能です。 =IF(DATE(YEAR(TODAY()),MONTH(TODAY())+1,1)-1=TODAY(),"今日は末日","今日は末日でない") 複雑な式になりますが、上記の3つの式を組み合わせると、目的が達成出来ると思います。 なお、祭日を加味して判定したい、年末年始やGWも判定したい場合、祭日判定は非常に複雑なので、マクロを組むか、VBで書く必要があります。

norineko
質問者

お礼

ご回答ありがとうございます。 わわ、すごい式ですね。w( ̄△ ̄;)w 便利そうですが、今回の作成資料には使わなくて済みそうです。 今後の仕事の参考にさせていただきます。 やっぱり祭日が入ると難しいようですね。 式を入れつつ祭日は自分でチェックしていこうと思います。 ありがとうございました。

関連するQ&A

専門家に質問してみよう