締めの予定を「毎月5日まで」と日付で決めると、毎月ずれる。5日が土曜の月もあれば、前に祝日が3つ入る月もある。決め方を「翌月の第5営業日」に変えると、そのずれがなくなる。
Excelなら式1本で出る。WORKDAYに翌月の前日と営業日数と祝日の一覧を渡すだけだ。
以下の日付は、2026年9月20日にMicrosoft 365のExcel(バージョン16)で計算させた。祝日は内閣府のCSVから作った一覧を使っている。作り方は祝日を判定する記事に書いた。
同じ月末でも、営業日の数は2日違う
2026年10月と11月で数えたら、営業日は21日と19日だった。同じ「1か月」でも2日違う。
10月31日は土曜なので、月末に締める運用なら実質の締め日は10月30日の金曜になる。これも式で出せる。
実質の締め日: =WORKDAY(EOMONTH(DATE(年,月,1),0)+1,-1,祝日!$A$1:$A$100)
月末の翌日から1営業日戻す、という書き方だ。月末が日曜でも祝日でも、その前の営業日に落ちる。手で毎月直す必要がなくなる。
第N営業日を出す式は1本
翌月の第N営業日は、こう書く。
=WORKDAY(DATE(年,月+1,1)-1,N,祝日!$A$1:$A$100)
起点を翌月1日の前日にするのがこつだ。ここを翌月1日にすると、1日が営業日のとき第1営業日が2日になってしまう。1日前から数え始めれば、1日が営業日ならそこが第1営業日になる。
WORKDAYに渡す祝日の範囲は、見出しの行を含めない。見出しの文字が混ざると#VALUE!が返る。この落とし穴は祝日の記事に詳しく書いた。
祝日が入ると、11月の第2営業日は4日になる
2026年11月で第1営業日から第10営業日まで出した結果がこれだ。
| 第N営業日 | 日付 | 第N営業日 | 日付 |
|---|---|---|---|
| 1 | 11/2(月) | 6 | 11/10(火) |
| 2 | 11/4(水) | 7 | 11/11(水) |
| 3 | 11/5(木) | 8 | 11/12(木) |
| 4 | 11/6(金) | 9 | 11/13(金) |
| 5 | 11/9(月) | 10 | 11/16(月) |
第2営業日が11月3日ではなく4日になっている。3日は文化の日だ。日付で「毎月3日まで」と決めていると、この月だけ祝日に作業が当たる。実際には誰も出社していないので、翌日にずれ込み、その後の工程が1日ずつ押す。
第10営業日は11月16日。10月末の締め日である10月30日から数えると、10営業日後にあたる。報告までに2週間以上かかっている計算になる。
締め日から逆算する
先に報告日を決めている職場では、逆向きに数える。
締めのN営業日前: =WORKDAY(締め日+1,-1-N,祝日!$A$1:$A$100)
売上データの提出を「締めの2営業日前まで」と決めておけば、月が変わっても自動で日付が出る。私は依頼のメールにこの日付を入れて、月初に各部署へ送っている。
作業一覧に期限と状態を持たせる
カレンダーだけでは足りない。誰がいつまでに何をするかを並べて、遅れているものが色で分かるようにする。列はこれだけでいい。
| 列 | 中身 |
|---|---|
| A | 作業 |
| B | 担当 |
| C | 第N営業日 |
| D | 期限(式) |
| E | 完了(済と入れる) |
| F | 状態(式) |
期限と状態の式はこうなる。
期限: =WORKDAY(DATE($B$1,$B$2+1,1)-1,C11,祝日!$A$1:$A$100)
状態: =IF(E11="済","済",IF(D11<$B$3,"遅れ",IF(D11=$B$3,"今日","予定")))
B3に今日の日付を入れておく。TODAY()でもいいが、私は手で入れている。過去の月を開いたときに全部「遅れ」になるのを避けるためだ。
10件の作業を並べて、4件を済にして計算させたら、済4件、遅れ0件、今日0件、予定6件と出た。集計はCOUNTIFで数えるだけだ。
=COUNTIF(F11:F20,"遅れ")
状態の列に条件付き書式をかけて、「遅れ」を赤にする。朝にこの表を開いて、赤があるかだけ見る。赤がなければ何もしない。
10営業日かかっているなら、どこを削るか
上の例では、締めから役員報告まで10営業日だった。これを短くしたいなら、どの作業が直列に並んでいるかを見る。
仕入の計上と在庫の受け払い確定は、どちらも第3営業日に置いた。担当が経理と倉庫で分かれているので、同時に進む。こういう並行できる作業を見つけて同じ日に寄せると、全体が縮む。
逆に、試算表の作成は仕訳の入力が終わらないと始まらない。ここは詰められない。詰めるとしたら、仕訳の入力を早く終わらせる側になる。経費精算の締め切りを第2営業日から第1営業日に動かせば、その後が1日ずつ前に動く。
どこを動かすと何日縮むかは、この表の第N営業日の数字を変えて集計を見れば分かる。実際に動かす前に、表の上で試せる。
20日締めの職場でも同じ式で組める
月末締めでない職場も多い。20日締めなら、20日そのものが休みのときに前の営業日へ落とし、そこから数え始める。式の形は月末のときと変わらない。
実質の締め日: =WORKDAY(DATE(年,月,20)+1,-1,祝日!$A$1:$A$100)
第N営業日: =WORKDAY(実質の締め日,N,祝日!$A$1:$A$100)
3つの月で計算させた。
| 締め | 20日の曜日 | 実質の締め日 | 第1営業日 | 第5営業日 |
|---|---|---|---|---|
| 2026年10月 | 火 | 10/20(火) | 10/21(水) | 10/27(火) |
| 2026年12月 | 日 | 12/18(金) | 12/21(月) | 12/25(金) |
| 2027年1月 | 水 | 1/20(水) | 1/21(木) | 1/27(水) |
12月だけ、実質の締め日が2日前に動いている。20日が日曜で、19日も土曜だからだ。1月は成人の日が入るので、第5営業日が1月27日まで延びている。20日締めと書いた紙の予定表では、この動きが追えない。
依頼のメールは日付をセルから拾う
月初に各部署へ出す依頼文は、日付だけを差し替える形にしておく。文面はこれで足りる。
10月分の締めについて、下記までに提出をお願いします。
売上データ 11月2日(月)まで
経費精算 11月4日(水)まで
請求書の原本 11月4日(水)まで
上記を過ぎた分は翌月に回ります。
日付の部分は、カレンダーのセルをそのまま参照して文字列にする。
=TEXT(WORKDAY(DATE($B$1,$B$2+1,1)-1,2,祝日!$A$1:$A$100),"m月d日(aaa)")&"まで"
こう書いておけば、対象月のセルを変えるだけで全部の日付が入れ替わる。私は依頼文を1枚のシートに置いて、毎月そこからコピーしている。手で日付を打ち直していた頃は、月に1回は前月の日付のまま送っていた。
踏んだ失敗
日付で決めていた頃、祝日の多い月に毎回同じ揉め方をしていた。「3日までに出してください」と送って、3日が祝日で誰も出せず、4日に催促する。第N営業日に変えてからは、催促のメールの日付が自動で正しくなった。
TODAY()を状態の式に直接入れていたときは、前月の表を開くたびに全部が「遅れ」に変わった。記録として残す表なので、これでは使えない。今日の日付をセルに置いて、そこを参照する形にした。過去の月は、その月の締め日を入れておけば当時の状態のまま残る。
祝日の一覧を更新し忘れて、年明けの第N営業日がずれたこともある。祝日の一覧は2027年11月までしか入っていない。毎年2月に取り直すと決めている。
自分の表に入れるとき
必要なのは、設定の3つのセル(対象年、対象月、今日)と、祝日のシート、作業の一覧だけだ。作業の一覧は、今やっていることをそのまま書き出す。理想の手順ではなく、実際の手順を書く。
最初の月は、第N営業日の欄を埋めずに運用してみる。実際に終わった日を記録して、翌月にその数字を第N営業日として入れる。理想で埋めると、初月から全部が「遅れ」になって使われなくなる。
項目の数は、増やしすぎると見なくなる。私は10件前後に収めている。減らし方はチェックリストの作り方の記事に書いた分け方が使える。起きたミスを4種類に分けて、同じ種類が繰り返されている項目だけ残す。



