Excel営業日・納期計算を関数で自動化する方法
約12分で読めます
納期の計算、毎回カレンダーを見ながら手で数えていませんか?
「今日から15営業日後って何日だっけ」と頭を抱えた経験がある方は多いのではないでしょうか。特に祝日をまたぐ月末や年度末は、ミスが起きやすく確認作業にも時間がかかります。この記事では、ExcelのWORKDAY・NETWORKDAYS関数を使って営業日ベースの納期計算を自動化する具体的な手順を解説します。
納期計算を手作業で続けるとどんな問題が起きるか
月末の受注ラッシュや年度末の見積もり対応が重なると、納期の計算ミスは致命的なトラブルに直結します。よくあるのが「土日を営業日としてカウントしてしまった」「祝日を見落として納期を1日早く伝えてしまった」というパターンです。
手作業の流れ(Before)
- 受注票を受け取り、カレンダーアプリを開く
- 今日の日付から1日ずつ数えて土日を除外する
- 祝日一覧を別タブや紙で確認しながら再カウントする
- 計算した日付をExcelに手入力する
- 上司や担当者にダブルチェックを依頼する
- 修正が発生したら最初からやり直す
関数を使った流れ(After)
- 祝日リストをExcelに一度登録しておく
- 受注日・営業日数をセルに入力する
- WORKDAY関数が自動で納期日を計算・表示する
- 受注日や営業日数を変えるだけで即座に再計算される
- ダブルチェックの手間が大幅に減る可能性があります
- 修正対応も数値を書き換えるだけで完結します
手作業では1件あたり数分かかっていた計算が、関数を使えば入力の瞬間に終わる可能性があります。件数が多い月は、積み上げると相当な時間差になるかもしれません。
ExcelのWORKDAY・NETWORKDAYS関数で納期を計算する手順
正直なところ、関数の名前を聞いただけで「難しそう」と感じる方もいるかもしれません。ただ、基本の使い方は非常にシンプルです。ここでは段階的に解説します。
ステップ1:祝日リストを別シートに作成する
WORKDAY関数を正確に動かすには、祝日の一覧を事前に用意しておく必要があります。
- 新しいシートを作成し、シート名を「祝日」などにする
- A列に年間の祝日の日付を縦に並べて入力する
- B列に祝日名を入力しておくと管理しやすくなります
ポイント: 祝日は毎年変わる部分があるため、年度初めに内閣府の公式サイト等で最新情報を確認して更新することをお勧めします。
ステップ2:WORKDAY関数で納期日を求める
WORKDAY関数の基本構文は次のとおりです。
=WORKDAY(開始日, 日数, [祝日])
基本形の例:
=WORKDAY(A2, 15, 祝日!$A$2:$A$30)
この数式は「A2セルの日付から15営業日後の日付を、祝日シートの祝日を除いて計算する」という意味です。第3引数の祝日リストを省略すると土日だけを除外し、祝日は考慮されないため注意が必要です。
表示形式の設定: 結果が数値で表示される場合は、セルを右クリック→「セルの書式設定」→「日付」を選択することで日付形式に変換できます。
ステップ3:NETWORKDAYS関数で営業日数を逆算する
「納期まで何営業日あるか」を求めたい場合はNETWORKDAYS関数を使います。
=NETWORKDAYS(開始日, 終了日, [祝日])
基本形の例:
=NETWORKDAYS(TODAY(), B2, 祝日!$A$2:$A$30)
この数式は「今日から納期日(B2)まで何営業日あるか」を返します。納期管理表に組み込むと、残り営業日数がリアルタイムで確認できるようになります。
ステップ4:条件付き書式で納期が迫ったセルを色分けする
残り営業日数が少ないセルを自動で赤くするには、条件付き書式を活用します。
- 残り営業日数が入ったセル範囲を選択する
- 「ホーム」→「条件付き書式」→「新しいルール」を選択する
- 「数式を使用して書式設定するセルを決定」を選び、
=C2<=3のような条件を入力する - 書式で背景色を赤などに設定する
これにより、残り3営業日以下になったセルが自動的に強調表示され、見落としを防ぎやすくなります。
応用的な使い方(業種別テンプレートや複数条件の組み合わせ等)はnoteで公開していますので、ご興味のある方はあわせてご確認ください。
WORKDAY関数でよくある失敗パターンと直し方
最初にうまくいかなかったのが「祝日が反映されない」という問題でした。原因を調べると、祝日リストの範囲指定が間違っていたり、日付の形式が文字列になっていたりするケースがほとんどです。
| 症状 | 原因 | 直し方 |
|---|---|---|
| 祝日が営業日としてカウントされる | 祝日リストを第3引数に指定していない、または範囲がずれている | =WORKDAY(A2,15,祝日!$A$2:$A$30) のように絶対参照で正確な範囲を指定する |
| 結果が数値(シリアル値)で表示される | セルの表示形式が「標準」または「数値」になっている | セルの書式設定を「日付」に変更する |
| 土曜を営業日に含めたい(週6日稼働) | WORKDAY関数は土日を固定で休日扱いする | WORKDAY.INTL関数を使い、第3引数で週末パターンを指定する |
| 祝日リストの日付が認識されない | 日付が文字列として入力されている | セルを選択して「日付」形式に変換するか、DATEVALUE関数で変換する |
意外な落とし穴だったのが「祝日リストの日付が文字列になっていた」ケースです。見た目は同じでも、関数が認識しないため祝日が無視されてしまいます。セルを選択したときに左上に表示される緑の三角マークが目印になります。
WORKDAY・NETWORKDAYS関数の強みと注意点
強みとして期待できること
- 営業日計算のミスが大幅に減る可能性があります
- 受注件数が増えても計算の手間がほぼ変わりません
- 祝日リストを一元管理できるため、チーム全体で同じ基準を使えます
- 条件付き書式と組み合わせると納期管理の見える化が期待できます
注意点と向いていないケース
ただし、いくつかの点は注意が必要です。
- 祝日リストのメンテナンスが必要: 毎年の祝日変更(振替休日・特別休暇等)を手動で更新しなければなりません。更新を忘れると計算結果がずれます。
- 社内独自の休業日は自分で追加する必要があります: 夏季休暇・年末年始の独自休業日は祝日リストに手動で追加しておく必要があります。
- 複雑な条件には限界があります: 「第2・第4土曜は出勤」のような変則シフトには対応が難しく、WORKDAY.INTL関数でも完全には再現できないケースがあります。
- Excelのバージョンによって関数が使えない場合があります: WORKDAY.INTL関数はExcel 2010以降で使用可能です。古いバージョンをお使いの場合は事前に確認が必要です。
正直なところ、祝日リストの更新を忘れてしまうリスクは課題として残ります。チームで運用する場合は、年度初めに更新担当者を決めておくと安心かもしれません。
よくある質問
WORKDAY関数とWORKDAY.INTL関数の違いは何ですか?
WORKDAY関数は土曜・日曜を固定で休日として扱います。一方、WORKDAY.INTL関数は週末パターンを自分で指定できるため、「土曜は出勤・日曜だけ休み」や「金曜・土曜が休み」など、業種や国によって異なる稼働パターンに対応できます。週5日(月〜金)稼働の一般的な企業であればWORKDAY関数で十分ですが、変則的な稼働形態の場合はWORKDAY.INTL関数の使用を検討してみてください。
祝日リストは何年分まとめて作っておくべきですか?
一般的には当年度分+翌年度分の2年分を用意しておくと、年度をまたぐ納期計算にも対応しやすくなります。ただし、祝日は法改正や特別措置によって変わることがあるため、あまり先の分を作り込みすぎると更新漏れのリスクが高まります。年度初めに翌年分を追加するサイクルが運用しやすいかもしれません。
NETWORKDAYS関数で「今日を含めるか含めないか」はどう設定しますか?
NETWORKDAYS関数は開始日と終了日の両方を含めてカウントします。「今日を除いた残り営業日数」を求めたい場合は、開始日にTODAY()+1を使うか、結果から1を引くことで調整できます。用途に合わせて計算式を微調整してみてください。
祝日リストを別ファイルで管理することはできますか?
技術的には外部ファイルを参照することも可能ですが、ファイルが閉じられていると参照できなくなるリスクがあります。チームで共有する場合は、同一ブック内の別シートに祝日リストを置く方法が安定して動作しやすいです。SharePoint等のクラウドストレージで共有ブックとして管理する方法も選択肢の一つかもしれません。
「〇営業日以内に返答する」という契約上の期限計算にも使えますか?
WORKDAY関数は日付計算のツールとして活用できますが、契約上の「営業日」の定義(祝日の扱い・振替休日の取り扱い等)は契約書や取引条件によって異なります。計算結果を契約上の期限として使用する場合は、必ず弁護士等の専門家や関連する契約書・法令(e-Gov法令検索等)との照合を行ってください。あくまでも参考値として活用することをお勧めします。
まとめと次のステップ
ExcelのWORKDAY・NETWORKDAYS関数を使えば、毎回カレンダーを見ながら手で数えていた営業日計算を自動化できる可能性があります。ポイントをまとめると次のとおりです。
- WORKDAY関数で「〇営業日後の日付」を自動計算できます
- NETWORKDAYS関数で「納期まで残り何営業日か」をリアルタイムで確認できます
- 祝日リストを正確に設定することが精度の鍵になります
- 条件付き書式と組み合わせると納期管理の見える化が期待できます
- 社内独自の休業日は祝日リストに手動で追加する必要があります
まず今日できるアクション: 手元のExcelに「祝日」シートを新規作成し、今年の祝日を入力してみてください。それだけでWORKDAY関数がすぐに使える状態になります。
Excel×AI業務効率化プロンプト集|関数・集計・グラフ・エラー対処・マクロをnoteで公開中
本記事では基本的なプロンプト例を紹介しましたが、
noteでは業種別・シーン別に使い分けできるテンプレート集を公開しています。
コピペしてすぐ使える完全版です。
