Aqlier/ 1月 6, 2022/ tech

各種銀行振込手続きを行っています。
毎月25日は、振込日。生活面でも毎月10日は、XXX支払日。毎月末は、XXX支払日。日付固定のため、当日が土日祝なら、前日が振込日に、翌日が支払日に。。。

EXCELで、日でデータ管理していると、土曜、日曜、祝日の時、手管理で操作しないと。。。少し面倒に感じていました。

それを、EXCELで計算させて自動算出できないだろうか?
そんな対応を行ってみました。


対処方法
1.EXCELで日付、振込日の欄の表を作成します。あるいは、作成済みの表を用意します。今回は、sampleです。

2.まず、日付の曜日を計算します。
=WEEKDAY((B4))
計算結果は、1:日曜、2:月曜・・・・7:土曜
3.Weekday・曜日の対応表を用意します。
weekday列(C列)は、なくても問題ないです。試しながら行っていたのでこんなやり方になっています。

4.weekdayの計算結果を「*曜日」に変換します。
=VLOOKUP(WEEKDAY(B4),$G$4:$H$11,2,FALSE)

5.表に曜日をセットします。
6.祝日の表を用意します。この表は、2022年版です。
  日付が祝日なのかチェックします。
=IFERROR(VLOOKUP(B4,$K$4:$L$20,2,FALSE),””)
7.表にドラッグしてセットします。今回祝日が含まれていないのでうまくいっているのか???
  そのため、実在する祝日を下部にセットしています。特に、GW期間は少し厄介です。
8.日付が「土日祝」なら、前営業日をセットするようにWORKDAYを使用します。前日なので、引数2番目に「-1」、引数3番目は、祝日の表(日付だけ)
  もし、翌営業日なら「1」、翌々営業日なら「2」を引数2番目にセットします。
計算結果が表示されますが、変な値です。
=IF(OR(C4=1,C4=7,E4<>””),WORKDAY(B4,-1,$K$5:$K$20),B4)

ーーー
2022.1.7追記
weekday(C列)を判定に使用しないとき
=IF(OR(D4=”日”,D4=”土”,D4<>””),WORKDAY(B4,-1,$k$5:$k$20),B4)
9.セルの書式設定で「日付」に変換します。

 10.表の振込日欄にドラッグしてセットします。

12.これで終わり。と思いつつ表を見ていると、2022/4/30(土)の前営業日に2022/4/29(祝)がセットされていて、なんでーー状態。
 この対応では、祝日が月曜ならOKなのに、祝日が金曜だとNG!!

13.ならば、、、再度振込日の祝日チェックを入れて再チェック。

14.そして、ドラッグすると、振込日がセットできました。

15.念のため曜日もセット。振込日算出は、問題なく対応ができました。
以下のEXCEL表に「振込日」2か所ありますが、右が正しい日付です。