仕事でよく、支払日を決めるのに月末締め、翌月払いという決め方をしています。
その締め日と支払日を計算する、コピペだけで使えるExcel計算式を紹介します。
例では、販売日をセルC1として計算しています。
締め日
その月のその日を過ぎていたら翌月、過ぎていなければ当月の指定した日です。
販売日が1月15日で20日締めなら1月20日、10日締めなら2月10日になります。
締め日の計算式は次の通りです。
10日締め
=IF(EOMONTH(C1,-1)+10>C1,EOMONTH(C1,-1),EOMONTH(C1,0))+10
20日締め
=IF(EOMONTH(C1,-1)+10>C1,EOMONTH(C1,-1),EOMONTH(C1,0))+10
末締め
=EOMONTH(C1,0)
支払日
支払日は翌月以降のケースが多いです。
もし当月なら締め日のIF関数を使った式を使います。
翌月以降だとIF関数は使わずにEOMONTH関数だけでOKです。
翌月10日締め
=EOMONTH(C1,0)+10
翌月末
=EOMONTH(C1,1)
翌々月10日締め
=EOMONTH(C1,1)+10
翌々月末
=EOMONTH(C1,2)
まとめ
今回使った関数は、EOMONTH関数です。
End Of Monthの略なのかなぁ、と想像しています。なんの略かはあまり重要ではないのですが、こう覚えれば覚えやすいかなと思います。
この関数は、月末の日付を求める関数で、次の書式です。
=EOMONTH(基準日,何か月後か)
基準日を今日、何か月後かを0にすれば今月末を求めます。
何か月後かを-1にすれば先月末を求め、そこに1を足せば当月の1日の日付になります。
こちらの記事にも公開している、今年の元旦を求めたり、大みそかを求めたりする方法もこの方法で求めています。
また、IFを使えば次のイベント日を求めることもできます。
今年のバレンタインデーは、
=DATE(YEAR(TODAY),2,14)
で求まるので、来年の元旦から、もしも今日の日付がこの日を過ぎていれば、13か月後、過ぎていなければ1月後の14日を求めれば、次のバレンタインデーを求めることができます。
=EOMONTH(TODAY(),-MONTH(TODAY())+IF(TODAY()>DATE(YEAR(TODAY()),2,14),13,1))+14
コメント