エクセルで締め日20日の請求期間を出す|支払期限が土日祝なら前倒しにする式

記事
ビジネス・マーケティング
締め日が月末ではなく20日の会社では、「この請求書は何日から何日までか」「支払期限が土日にかかったらどうするか」で手が止まりがちです。発行日を入れるだけで、請求期間と支払日が出る形にします。

使う表の例です。B1に発行日(2026/11/25)を入れます。

■ 請求期間の開始日を出す
20日締めなら、前月21日から当月20日までが1つの請求期間です。発行日が20日以前か21日以降かで分けます。
=IF(DAY(B1)<=20,DATE(YEAR(B1),MONTH(B1)-1,21),DATE(YEAR(B1),MONTH(B1),21))
試した結果:2026/11/21
発行日の11/25は21日以降なので、11/21から始まる期間になります。

■ 締め日を出す
=IF(DAY(B1)<=20,DATE(YEAR(B1),MONTH(B1),20),DATE(YEAR(B1),MONTH(B1)+1,20))
試した結果:2026/12/20
この式をB3に入れたとします。11/25発行なら、この請求は12/20締めの分です。

■ 支払期限を「締め日の翌月末」にする
=EOMONTH(B3,1)
試した結果:2027/01/31
EOMONTHは「何か月後の月末」を出す関数です。表示が数字になったときは、セルの表示形式を「日付」にします。この式をB4に入れたとします。

■ 期限の曜日を確かめる
=TEXT(B4,"aaa")
試した結果:日
2027/01/31は日曜日です。このまま請求書に書くと、土日に振込みできない期限になります。

■ 土日なら前の営業日にする(前倒し)
=WORKDAY(B4+1,-1)
試した結果:2027/01/29
WORKDAYは「何営業日後(前)」を出す関数で、土日を飛ばします。期限の翌日から1営業日戻すので、平日ならその日のまま、土日なら直前の金曜になります。

■ 土日なら次の営業日にする(後ろ倒し)
=WORKDAY(B4-1,1)
試した結果:2027/02/01
こちらは期限の前日から1営業日進めます。平日ならその日のまま、土日なら次の月曜になります。

■ 祝日も避ける
祝日の日付を別のセルに並べ、WORKDAYの3番目に範囲として入れます。例として、B8に期限(2027/02/11・建国記念の日)、B9に祝日の日付(2027/02/11)を入れたとします。
=WORKDAY(B8+1,-1,B9)
試した結果:2027/02/10
=WORKDAY(B8-1,1,B9)
試した結果:2027/02/12
祝日が複数あるときは、B9からB20のように縦に並べて範囲で指定します。祝日の一覧は、毎年自分で更新します。

■ 発行日がちょうど20日のとき
20日は「20日以前」に入るので、その月の20日が締め日になります。
=IF(DAY(DATE(2026,11,20))<=20,DATE(2026,11,20),DATE(2026,12,20))
試した結果:2026/11/20

■ うまくいかないとき
・日付が数字になる:セルの表示形式を「日付」にします。
・WORKDAYで #NAME? や #VALUE! が出る:関数名の綴りと、祝日の範囲に日付以外の文字が入っていないかを見ます。
・祝日の日が前倒しにならない:祝日のセルが文字ではなく日付として入っているかを確かめます。
・会社ごとの決まり(前倒しか後ろ倒しか)は、取引先との約束どおりにします。

請求書の番号を自動で連番にする式は、別の記事で書いています。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す