- 作成日 : 2025年8月25日
NETWORKDAYS関数の使い方:エクセルで営業日数を正確に計算する
プロジェクトの期間計算や、納期管理、残業時間の計算など、エクセルで日付を扱う業務は多岐にわたります。その中でも、「土日を除いた営業日数(稼働日数)を正確に知りたい」というニーズは非常に多いのではないでしょうか? 祝日も考慮に入れるとなると、手作業での計算は手間がかかり、ミスも発生しやすくなります。
そんな時に便利なのが、エクセルの「NETWORKDAYS関数」です。NETWORKDAYS関数を使えば、開始日と終了日の間の営業日数を、土日だけでなく指定した祝日も除外して自動で計算してくれます。
この記事では、エクセル初心者の方にもNETWORKDAYS関数の基本的な使い方から、具体的な利用シーン、他の関数との組み合わせによる応用例、そしてよくあるエラーとその対策まで、網羅的に解説していきます。
目次
NETWORKDAYS関数の基本的な使い方
NETWORKDAYS関数は、指定した2つの日付の間の営業日数を返します。土日を除外するのはもちろん、任意で指定した祝日も除外できるのが大きな特徴です。
NETWORKDAYS関数の書式
NETWORKDAYS関数には、主に2つのバージョンがあります。
NETWORKDAYS関数 (古いバージョンと互換性あり)
=NETWORKDAYS(開始日, 終了日, [祭日])
NETWORKDAYS.INTL関数 (より柔軟な週末の指定)
=NETWORKDAYS.INTL(開始日, 終了日, [週末], [祭日])
- 開始日:営業日数を計算する期間の開始日を指定します。
- 終了日:営業日数を計算する期間の終了日を指定します。
- [祭日] (省略可能):祝日リストを含むセル範囲(例: A2:A10)を指定します。複数の日付を直接指定したい場合は、配列定数を使用します(例:{“2025/6/9″,”2025/6/23”})。第3(第4)引数に日付をカンマで複数並べる書き方はできません。
- [週末] (NETWORKDAYS.INTLのみ、省略可能):週末をどの曜日にするかを指定します。省略した場合は土日(1)が週末と見なされます。
番号 | 週末の種類 |
---|---|
1 | 土日 (既定) |
2 | 日月 |
3 | 月火 |
… | … |
7 | 金土 |
11 | 日のみ |
12 | 月のみ |
… | … |
17 | 土のみ |
具体的な使用例
2025年6月の日付を例に見てみましょう。
- 開始日:2025/6/1 (日)
- 終了日:2025/6/30 (月)
そして、以下の祝日リストがあるとします。
| 祝日リスト |
| :——— |
| 2025/6/9 |
| 2025/6/23 |
- 式:=NETWORKDAYS(“2025/6/1”, “2025/6/30”, A2:A3)
- 結果:19
- 6月は30日間。
- 土日が9日 (6/1, 7, 8, 14, 15, 21, 22, 28, 29)
- 祝日が2日 (6/9, 6/23)
- 30 – 9 – 2 = 19 日
- 式:=NETWORKDAYS.INTL(“2025/6/1”, “2025/6/30”, 7, A2:A3)
- 結果:20
- 週末を金土に設定したため、休日の日数が変わります。
- 6月は30日間。
- 金土が8日 (6/6, 7, 13, 14, 20, 21, 27, 28)
- 祝日が2日 (6/9, 6/23)
- 30 – 8 – 2 = 20 日
NETWORKDAYS.INTL関数は、週休3日制の会社や、週末が土日ではない国での計算など、より多様な働き方に対応できるのがメリットです。
NETWORKDAYS関数の利用シーン
NETWORKDAYS関数は、ビジネスやプライベートにおいて、日付に関連する様々な計算でよく使われます。
1. プロジェクトの進捗管理と納期計算
プロジェクトの開始日から終了日までの実質的な作業日数を把握することで、現実的なスケジュールを立てたり、進捗状況を正確に評価したりできます。
- 開始日:2025/7/1
- 終了日:2025/7/31
- 祝日リスト:2025/7/21(海の日)
=NETWORKDAYS(“2025/7/1”, “2025/7/31”, 祝日リスト範囲) を使うと、営業日数を自動で算出できます。
2. 従業員の勤怠管理と給与計算
従業員の勤務日数や残業時間の計算において、休日を除外した実働日数を算出する際に利用できます。
- 対象期間の開始日と終了日
- 会社の休日(祝日)リスト
これにより、正確な日割り給与や勤怠の算出が可能になります。
3. イベントや研修の開催期間計画
開催期間中に土日や祝日を避けて、実質的なプログラム開催日数を計算する際に便利です。
例:5日間の研修を計画する際に、開始日と終了日の間に必要な営業日数を確認する
4. 契約期間や保証期間の営業日数換算
法的な契約や保証期間において、「営業日で○日」と定められている場合に、具体的な終了日を算出する際の基準として利用できます。
NETWORKDAYS関数の応用・他関数との組み合わせ
NETWORKDAYS関数は単体でも強力ですが、他の日付関数や論理関数と組み合わせれば、実務に即した日程管理が行えます。
1. WORKDAY関数(N日後の営業日を計算)との組み合わせ
NETWORKDAYS関数が「期間内の営業日数」を計算するのに対し、WORKDAY関数は「指定した営業日数後の日付」を計算します。これらを組み合わせることで、プロジェクト計画の正確性を高めるのに役立ちます。
- 開始日:2025/8/1
- 必要営業日数:10
- 祝日リスト
=WORKDAY(開始日, 必要営業日数, 祝日リスト範囲)
これにより、特定のタスク完了に必要な営業日数を元に、具体的な終了日を特定できます。NETWORKDAYS関数で期間を算出し、WORKDAY関数で終了日を特定するといった使い方ができます。
2. IF関数や条件付き書式との組み合わせ
例えば、営業日数が特定のしきい値を超えた場合に警告を表示したり、色を付けたりすることができます。
例:プロジェクトの営業日数が20日を超えたら「長期プロジェクト」と表示
=IF(NETWORKDAYS(開始日, 終了日, 祝日リスト範囲)>20, “長期プロジェクト”, “通常プロジェクト”)
3. YEAR関数やMONTH関数との組み合わせ
年次や月次の集計を行う際に、NETWORKDAYS関数で計算した営業日数を基にデータを分析できます。
例:特定の月の営業日数を自動で計算し、月別レポートに反映
月の最初の日と最後の日をDATE関数やEOMONTH関数で動的に生成し、NETWORKDAYS関数に渡します。
NETWORKDAYS関数のよくあるエラーと対策
NETWORKDAYS関数は、日付の入力形式や祝日リストの扱いでエラーが発生することがあります。
1. #VALUE! エラー
#VALUE! エラーは、日付の引数に有効な日付形式でない値や、数値として認識できない文字列を渡した場合に発生します。
- =NETWORKDAYS(“令和6年1月1日”, “令和6年1月31日”) (エクセルが認識しない和暦表記)
- =NETWORKDAYS(“開始日”, “終了日”) (文字列を直接入力)
対策:
日付は、エクセルが認識できる形式(例: “YYYY/MM/DD”、”MM/DD/YYYY”)で入力するか、DATE関数を使って指定してください。セル参照の場合も、そのセルに入力されている値が有効な日付であることを確認しましょう。
例: =NETWORKDAYS(DATE(2025,1,1), DATE(2025,1,31))
2. #NUM! エラー
#NUM! は、開始日または終了日が日付シリアルの範囲外にあるときに発生します。
注意:開始日が終了日より後でもエラーにはならず、負の営業日数が返ります(NETWORKDAYS/NETWORKDAYS.INTL 共通)。
対策:DATE 関数で有効な年月日に正す/入力範囲を見直す。結果を常に0以上にしたい場合は、
=NETWORKDAYS(MIN(開始日, 終了日), MAX(開始日, 終了日), 祝日リスト範囲)
を使います。
また、NETWORKDAYS.INTL の[週末]が無効な形式(例:週末文字列の長さが7でない、0/1以外を含む など)の場合は #VALUE! になります。
3. 祝日リストの参照ミスや書式間違い
祝日リストが正しく参照されていなかったり、リスト内の日付が有効な日付形式でなかったりすると、意図しない計算結果になったり、エラーになったりします。
- 祝日リストのセル範囲が正しいか確認してください。
- 祝日リスト内の各セルが、エクセルが認識できる有効な日付形式で入力されているか確認してください。文字列として入力されている場合は、日付として認識されません。
NETWORKDAYS関数は、営業日数を算出し日程管理を効率化する関数
NETWORKDAYS関数は、開始日と終了日の間の営業日数を自動で計算できる便利な日付関数です。土日だけでなく、任意の祝日も除外できるため、納期管理・勤怠集計・契約期間の管理など、実務に直結する日数計算に最適です。
また、NETWORKDAYS.INTL関数を使えば、週末の定義を柔軟に変更できるため、週休3日制や海外の休日体系にも対応できます。さらに、WORKDAY関数やIF関数などと組み合わせることで、スケジュールの自動計算・進捗判定・レポート出力にも応用が可能です。
入力ミスや形式の違いによるエラーを避けるためには、日付形式の確認や祝日リストの整備が欠かせません。日程管理や営業日換算において、NETWORKDAYS関数を活用することで、作業の効率と信頼性を高めることができるでしょう。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
TODAY関数の使い方を応用までわかりやすく解説
Excelにおいて、TODAY関数は現在の日付を取得するための非常に便利なツールです。この関数を活用することで、日付計算やデータ管理が効率化されます。本記事では、TODAY関数の基本的な使い方から、和暦の表示や翌日の日付の取得、曜日の表示、…
詳しくみるスプレッドシートで文字列を結合するには?改行を含む場合まで徹底解説
Googleスプレッドシートで文字列を結合すると、氏名や住所の整形、商品コードの生成など幅広い業務に役立ちます。&演算子、CONCATENATE関数、CONCAT関数、TEXTJOIN関数といった複数の方法があり、それぞれに適した使…
詳しくみるエクセルを使った日報の作り方は?メリットやテンプレートの活用法も解説
日々の業務内容や成果、課題などを記録する日報は、個人の振り返りだけでなく、チーム内の情報共有や業務改善にも不可欠なツールです。その作成方法として、エクセルを活用するケースは少なくありません。 この記事では、エクセルで日報を作成するメリットか…
詳しくみるNPER関数の使い方:ローン返済期間や投資目標達成期間を計算する方法
NPER関数は、一定の利率と定期的な支払いを前提に、現在の金額と将来の目標額の差を埋めるために必要な期間数を計算する財務関数です。 住宅ローンの返済期間の算出、積立投資での目標達成期間の計算、借入金の完済時期の予測など、金融計画の立案に欠か…
詳しくみるCONCAT関数(CONCATENATE関数)の使い方をわかりやすく解説
CONCAT関数(CONCATENATE関数)は、複数の文字列を連結して一つの文字列にする非常に便利な関数です。この関数を使うことで、スプレッドシート内のデータを簡単に整形し、見やすい形式にまとめることが可能になります。本記事では、CONC…
詳しくみるエクセルで乱数を作るには?RAND関数・RANDBETWEEN関数を使おう
エクセルを活用することで、簡単に乱数を生成することができます。特に、RAND関数やRANDBETWEEN関数を利用することで、さまざまな用途に応じた乱数を手軽に作成することが可能です。本記事では、これらの関数の使い方や、エクセルで重複しない…
詳しくみる