【Excel】NETWORKDAYS関数で稼働日数・土日祝を除いた期間を計算する方法

【Excel】NETWORKDAYS関数で稼働日数・土日祝を除いた期間を計算する方法
🛡️ 超解決

プロジェクトのスケジュール作成や勤怠管理で、土日祝日を除いた正確な稼働日数を計算したいと考える方は多いでしょう。手作業でカレンダーを数えるのは手間がかかり、ミスが発生しやすくなります。ExcelのNETWORKDAYS関数を使えば、開始日と終了日の間の稼働日数を簡単に算出できます。この記事では、NETWORKDAYS関数の基本的な使い方から、祝日を考慮した計算方法、さらに柔軟な休日設定ができるNETWORKDAYS.INTL関数の活用法まで詳しく解説します。

この記事を読めば、あなたの業務における日付計算の精度と効率が向上します。正確な稼働日数の計算で、より信頼性の高い計画を立てられるようになるでしょう。

【要点】NETWORKDAYS関数で正確な稼働日数を算出

  • NETWORKDAYS関数: 開始日と終了日の間の稼働日数を自動で計算し、土日を休日として除外します。
  • 祝日リストの指定: 祝日を別途リストとして用意し、NETWORKDAYS関数の引数に追加することで、祝日も稼働日数から除外できます。
  • NETWORKDAYS.INTL関数: 土日以外の特定の曜日を休日として設定したい場合に利用し、より柔軟な稼働日数計算が可能です。

ADVERTISEMENT

NETWORKDAYS関数で何ができるか:稼働日数計算の基礎知識

NETWORKDAYS関数は、開始日から終了日までの期間における稼働日数を計算するExcel関数です。この関数は自動的に土曜日と日曜日を休日として扱い、計算から除外します。さらに、日本の祝日などの会社独自の休日も、あらかじめリストとして指定すれば稼働日数から外すことができます。これにより、手作業でのカウントミスを防ぎ、正確な業務期間を把握できます。

NETWORKDAYS関数の基本機能と引数

NETWORKDAYS関数は、主に以下の3つの引数(ひきすう)を持ちます。

  • 開始日: 期間の開始となる日付を指定します。
  • 終了日: 期間の終了となる日付を指定します。
  • 祝日: オプションで、稼働日数から除外したい祝日や会社独自の休日が入力されたセル範囲を指定します。

指定された開始日と終了日の両方が計算対象に含まれます。例えば、開始日が月曜日で終了日が火曜日なら、2日間として計算されます。Excel for Microsoft 365だけでなく、Excel 2019、Excel 2021でも同様に利用できます。

NETWORKDAYS.INTL関数による休日の柔軟な設定

NETWORKDAYS関数は土日を固定で休日としますが、中には土日以外を休日に設定したいケースもあるでしょう。そのような場合に役立つのがNETWORKDAYS.INTL関数です。この関数はNETWORKDAYS関数の機能に加え、「週末」という引数を追加で指定できます。

「週末」引数に数値を指定することで、休日を土日、日月、月火、あるいは週に1日だけなど、自由に設定できます。NETWORKDAYS.INTL関数はExcel 2010以降のバージョンで利用できる機能です。Excel for Microsoft 365、Excel 2019、Excel 2021でも問題なく使えます。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

NETWORKDAYS関数の基本的な入力手順

ここでは、NETWORKDAYS関数を使って稼働日数を計算する具体的な手順を解説します。まずは開始日と終了日のみで計算し、次に祝日リストを含める方法を見ていきましょう。

開始日と終了日のみで稼働日数を計算する手順

この手順では、土日のみを休日として稼働日数を算出します。

  1. 日付の準備
    計算の対象となる開始日と終了日を、それぞれ任意のセルに入力します。例えば、セルA1に「2023/10/1」、セルB1に「2023/10/31」と入力します。
  2. 関数の入力
    結果を表示したいセルを選択し、「=NETWORKDAYS(A1,B1)」と入力します。
  3. 結果の確認
    Enterキーを押すと、開始日から終了日までの土日を除いた稼働日数が表示されます。

祝日リストを含めて稼働日数を計算する手順

土日に加えて、日本の祝日や会社独自の休日も稼働日数から除外したい場合の計算手順です。

  1. 祝日リストの作成
    除外したい祝日や会社独自の休日を、別のセル範囲に日付形式で入力します。例えば、セルD1からD5に、2023年10月の祝日「2023/10/9」などを入力します。
  2. 関数の入力
    稼働日数を表示したいセルを選択し、「=NETWORKDAYS(A1,B1,D1:D5)」と入力します。最後の引数である「D1:D5」が祝日リストのセル範囲を示しています。
  3. 結果の確認
    Enterキーを押すと、開始日から終了日までの土日と祝日を除いた正確な稼働日数が表示されます。

休日の曜日を自由に設定するNETWORKDAYS.INTL関数の活用

NETWORKDAYS.INTL関数は、特定の業種やシフト制勤務など、土日以外の曜日を休日としたい場合に非常に役立ちます。ここではその設定方法を解説します。

NETWORKDAYS.INTL関数の基本的な入力手順

NETWORKDAYS.INTL関数は、NETWORKDAYS関数に「週末」引数が追加されたものです。

  1. 日付と祝日リストの準備
    セルA1に開始日、セルB1に終了日を入力します。セルD1からD5に祝日リストを入力します。
  2. 「週末」引数の確認
    「週末」引数には、以下の数値コードで休日となる曜日を指定します。
    • 1または省略: 土日
    • 2: 日月
    • 3: 月火
    • 7: 金土
    • 11: 日のみ
    • 12: 月のみ
    • 17: 土のみ

    例えば、日曜日と月曜日を休日にしたい場合は「2」を指定します。

  3. 関数の入力
    結果を表示したいセルを選択し、「=NETWORKDAYS.INTL(A1,B1,2,D1:D5)」と入力します。この例では、日曜日と月曜日を休日とし、祝日リストも考慮して稼働日数を計算します。
  4. 結果の確認
    Enterキーを押すと、指定した曜日と祝日を除いた稼働日数が表示されます。

ADVERTISEMENT

NETWORKDAYS関数利用時の注意点と制限

NETWORKDAYS関数やNETWORKDAYS.INTL関数を使う際には、いくつかの注意点があります。これらを理解して、計算ミスを防ぎましょう。

日付の書式設定に注意が必要な点

日付が文字列として認識されると、関数が正しく動作しません。

原因: Excelは日付を数値として内部処理しています。しかし、「2023/10/1」のような表示でも、セルに「’2023/10/1」のようにアポストロフィが付いている場合や、インポートしたデータが文字列形式になっていると、日付として認識されません。
対処: 日付を入力する際は、標準的な日付形式(例: 2023/10/1、2023-10-1)で入力してください。また、テキスト形式になっている場合は、セルの書式設定を「日付」に変更し、必要に応じて「データ」タブの「区切り位置」機能で日付形式に変換する操作を試みてください。DATE関数を使って「=DATE(2023,10,1)」のように日付を作成することも確実な方法です。

祝日リストの重複や空白が影響するケース

祝日リストに同じ日付が複数回入力されても、稼働日数計算には影響しません。

原因: NETWORKDAYS関数は、リスト内の日付を個別の休日として認識するため、重複する日付は一度だけ考慮されます。ただし、祝日リストのセル範囲に空白セルが含まれていても、それは無視されるだけで計算結果に直接的な問題は起きません。
対処: 祝日リストは、計算に含めたい日付のみを正確に入力することが望ましいです。不要な空白や文字列データを含めないことで、リストの管理がしやすくなります。

開始日と終了日の順番が逆の場合

NETWORKDAYS関数では、開始日が終了日よりも後の日付である場合、マイナスの値が返されます。

原因: 関数は終了日から開始日までの期間を計算するため、期間が逆転すると負の稼働日数として認識されます。これはエラーではありませんが、意図しない結果です。
対処: 開始日が終了日よりも前の日付であることを必ず確認してください。もし逆に設定する可能性がある場合は、IF関数やMIN/MAX関数を使って「=NETWORKDAYS(MIN(A1,B1),MAX(A1,B1),D1:D5)」のように、常に開始日が終了日より前になるように調整できます。

バージョンによる機能の制限

NETWORKDAYS関数とNETWORKDAYS.INTL関数では、利用できるExcelのバージョンに違いがあります。

原因: NETWORKDAYS関数はExcel 2007以前のバージョンでも広く利用されていました。しかし、NETWORKDAYS.INTL関数は、休日の柔軟な設定機能が追加されたため、Excel 2010以降のバージョンで導入されました。
対処: もし旧バージョンのExcelを使用している環境でファイルを受け渡しする場合、NETWORKDAYS.INTL関数が使えない可能性があります。その際は、NETWORKDAYS関数で対応できる範囲で利用するか、VBAで独自の稼働日数計算ロジックを作成するなどの代替案を検討する必要があります。

NETWORKDAYS関数とNETWORKDAYS.INTL関数の機能比較

二つの稼働日数計算関数を比較し、それぞれの特性を理解しましょう。

項目 NETWORKDAYS関数 NETWORKDAYS.INTL関数
基本機能 開始日と終了日の間の稼働日数を計算 開始日と終了日の間の稼働日数を計算
休日設定 土日を固定で休日とみなす 「週末」引数で任意の曜日を休日として設定可能
祝日リスト オプションで指定した祝日を除外可能 オプションで指定した祝日を除外可能
バージョン要件 Excel 2007以前のバージョンでも利用できる Excel 2010以降のバージョンで利用できる
応用性 標準的な週休2日制の稼働日数計算に適する シフト制勤務や特定の曜日が休日の場合に柔軟に対応できる

まとめ

この記事を通じて、ExcelのNETWORKDAYS関数とNETWORKDAYS.INTL関数を使って、土日祝日を除いた正確な稼働日数を計算する方法を習得できました。これらの関数を使いこなすことで、複雑な日付計算の手間を大幅に削減し、業務効率を高めることができます。プロジェクトの進行管理や個人の勤怠管理、予算計画など、さまざまなビジネスシーンで活用してください。

今後は、これらの関数を他の日付関連関数(例: EDATE関数で月末日を取得するなど)と組み合わせることで、さらに高度な期間計算やスケジュール管理が可能になります。ぜひ日々の業務でNETWORKDAYS関数やNETWORKDAYS.INTL関数を積極的に活用し、作業時間を短縮し正確な計画を立てていきましょう。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】