• 作成日 : 2025年8月25日

NETWORKDAYS.INTL関数の使い方:営業日数の計算をマスターする

NETWORKDAYS.INTL関数は、開始日から終了日までの営業日数を計算するExcelの日付関数です。土日以外の休日パターンや祝日を自由に設定できるため、国や企業独自の営業日カレンダーに対応した日数計算が可能です。

プロジェクト管理や勤怠管理、納期計算など、ビジネスシーンで頻繁に必要となる営業日計算を効率化できます。本記事では、基本的な使い方から実践的な活用方法、エラー対処法まで、初心者の方にもわかりやすく解説します。

NETWORKDAYS.INTL関数の基本的な使い方

NETWORKDAYS.INTL関数とは

NETWORKDAYS.INTL関数は、指定した期間内の営業日数を計算する関数です。従来のNETWORKDAYS関数と異なり、週末の定義を自由にカスタマイズできる点が大きな特徴です。

たとえば、金曜日と土曜日が休日の中東諸国や、水曜日が定休日の企業など、様々な休日パターンに対応できます。また、祝日リストを指定することで、より正確な営業日計算が可能になります。

基本構文と引数の詳細

NETWORKDAYS.INTL関数の構文は以下のとおりです。

=NETWORKDAYS.INTL(開始日, 終了日, [週末], [祝日])

各引数について詳しく説明します。

  • 開始日:計算期間の開始日を指定します。日付は直接入力するか、セル参照、DATE関数などで指定できます。
  • 終了日:計算期間の終了日を指定します。開始日と同じ形式で指定します。
  • 週末(省略可能):週末となる曜日を指定します。数値または文字列で指定でき、省略時は土日が週末となります。
  • 祝日(省略可能):営業日から除外する祝日のリストを指定します。セル範囲または配列定数で指定します。

週末パラメータの指定方法

週末パラメータは、1から17までの数値、または7桁の文字列で指定できます。

主な数値指定の例
  • 1または省略:土曜日と日曜日
  • 2:日曜日と月曜日
  • 3:月曜日と火曜日
  • 11:日曜日のみ
  • 12:月曜日のみ

文字列での指定では、”0000011″のように7桁で各曜日の稼働状況を表します。月曜日から日曜日の順で、0が営業日、1が休日を意味します。

たとえば、”0000011″は土日が休日、”0010010″は水曜日と土曜日が休日となります。

基本的な使用例

2024年1月1日から2024年1月31日までの営業日数を計算する例:

=NETWORKDAYS.INTL(“2024/1/1”, “2024/1/31”)

この場合、土日を除いた23日間が結果として返されます。

金曜日と土曜日を週末とする場合:

=NETWORKDAYS.INTL(“2024/1/1”, “2024/1/31”, 7)

水曜日のみを定休日とする場合:

=NETWORKDAYS.INTL(“2024/1/1”, “2024/1/31”, “0010000”)

NETWORKDAYS.INTL関数の実践的な利用シーン

プロジェクト管理での活用

プロジェクトの実質的な作業日数を把握する際、NETWORKDAYS.INTL関数は営業日数の把握に役立つ関数です。

新製品開発プロジェクトが2024年4月1日に開始し、6月30日に完了予定の場合、実際の作業可能日数を計算できます。

=NETWORKDAYS.INTL(“2024/4/1”, “2024/6/30”, 1, 祝日リスト)

祝日リストには、ゴールデンウィークなどの連休を含めることで、より現実的な工数見積もりが可能になります。

さらに、チームメンバーの稼働率を考慮した計算も可能です。

稼働率80%の場合:

=NETWORKDAYS.INTL(“2024/4/1”, “2024/6/30”, 1, 祝日リスト) * 0.8

納期計算への応用

製造業や物流業では、受注から納品までの営業日数計算が重要です。NETWORKDAYS.INTL関数を使用することで、正確な納期回答が可能になります。

受注日から10営業日後の納期を計算する場合は、WORKDAY.INTL関数と組み合わせて使用します。

=WORKDAY.INTL(受注日, 10, 1, 祝日リスト)

実際の所要日数を確認する場合:

=NETWORKDAYS.INTL(受注日, 納品日, 1, 祝日リスト)

この計算により、営業日ベースでの遅延日数や余裕日数を把握できます。

勤怠管理システムでの使用

従業員の実労働日数計算にNETWORKDAYS.INTL関数を活用することで、給与計算の精度が向上します。

月初から月末までの出勤可能日数:

=NETWORKDAYS.INTL(EOMONTH(TODAY(),-1)+1, EOMONTH(TODAY(),0), 1, 祝日リスト)

シフト制で働く従業員の場合、独自の休日パターンを設定できます。

火曜日と水曜日が定休の場合:

=NETWORKDAYS.INTL(開始日, 終了日, “0110000”, 祝日リスト)

有給休暇を考慮した実労働日数の計算:

=NETWORKDAYS.INTL(開始日, 終了日, 1, 祝日リスト) – 有給日数

国際ビジネスでの活用

グローバル企業では、各国の営業日カレンダーに対応する必要があります。NETWORKDAYS.INTL関数の柔軟性により、この課題を解決できます。

アメリカ本社(土日休み)と中東支社(金土休み)の共通営業日を計算する場合、両方の営業日を考慮した複雑な計算が必要になります。

=SUMPRODUCT(–(ISNUMBER(MATCH(WEEKDAY(ROW(INDIRECT(開始日&”:”&終了日)),1),{2,3,4,5},0)))

このような計算により、国際会議の日程調整などに活用できます。

NETWORKDAYS.INTL関数の応用テクニック

条件付き営業日計算

特定の条件に応じて営業日計算を切り替える場合、IF関数と組み合わせることで柔軟な対応が可能です。

部署によって異なる休日パターンを適用する例:

=IF(部署=”営業”,

NETWORKDAYS.INTL(開始日, 終了日, 1, 祝日リスト),

NETWORKDAYS.INTL(開始日, 終了日, “0000011”, 祝日リスト))

繁忙期と通常期で異なる稼働日を設定する場合:

=IF(MONTH(開始日)=12,

NETWORKDAYS.INTL(開始日, 終了日, 11, 祝日リスト),

NETWORKDAYS.INTL(開始日, 終了日, 1, 祝日リスト))

動的な祝日リストの作成

祝日リストを動的に管理することで、メンテナンスの手間を削減できます。

祝日テーブルから条件に合う日付を抽出する方法:

=NETWORKDAYS.INTL(開始日, 終了日, 1,

FILTER(祝日テーブル, YEAR(祝日テーブル)=YEAR(開始日)))

会社独自の休業日と公的な祝日を統合する場合:

=NETWORKDAYS.INTL(開始日, 終了日, 1,

UNIQUE(VSTACK(祝日リスト1, 祝日リスト2)))

営業日率の算出

期間内の営業日の割合を計算することで、稼働効率の分析が可能です。

営業日率の計算式:

=NETWORKDAYS.INTL(開始日, 終了日, 1, 祝日リスト) /

(終了日 – 開始日 + 1)

月別の営業日率を比較することで、生産性の季節変動を把握できます。

年間を通じた営業日率の推移をグラフ化することで、経営計画の策定に役立てることができます。

複数拠点の統合管理

複数の事業所や国をまたいだ営業日管理では、NETWORKDAYS.INTL関数を配列数式として活用します。

各拠点の営業日数を一括計算:

=SUMPRODUCT(NETWORKDAYS.INTL(開始日, 終了日,

拠点別週末パターン, 拠点別祝日リスト))

最小営業日数の拠点を特定:

=INDEX(拠点名, MATCH(MIN(営業日数配列), 営業日数配列, 0))

NETWORKDAYS.INTL関数のよくあるエラーと対処法

#VALUE!エラーの解決方法

NETWORKDAYS.INTL関数で最も頻繁に発生するエラーです。主な原因と対処法を説明します。

日付が文字列として認識されている場合、このエラーが発生します。DATEVALUE関数で日付形式に変換することで解決できます。

=NETWORKDAYS.INTL(DATEVALUE(開始日文字列), DATEVALUE(終了日文字列))

週末パラメータの指定が不正な場合もエラーの原因となります。数値は1-17の範囲内、文字列は7桁で0と1のみで構成されているか確認しましょう。

#NUM!エラーへの対応

開始日が終了日より後の日付になっている場合に発生します。日付の大小関係を確認し、必要に応じて入れ替えます。

=NETWORKDAYS.INTL(MIN(日付1, 日付2), MAX(日付1, 日付2))

1900年1月1日より前の日付を指定した場合もこのエラーが発生します。Excelの日付システムの制限を理解し、適切な範囲内の日付を使用しましょう。

祝日リストに関する注意点

祝日リストに空白セルや文字列が含まれていると、正確な計算ができません。FILTER関数で有効な日付のみを抽出します。

=NETWORKDAYS.INTL(開始日, 終了日, 1,

FILTER(祝日範囲, ISNUMBER(祝日範囲)))

祝日リストが別シートにある場合、シート名を含めた正確な参照が必要です。

=NETWORKDAYS.INTL(開始日, 終了日, 1, 祝日マスタ!A:A)

パフォーマンスの最適化

大量のデータを処理する場合、計算速度が問題になることがあります。

揮発性関数(TODAY、NOW)の使用を最小限に抑え、必要な場合のみ使用します。静的な日付を使用できる場合は、値として入力することを推奨します。

配列数式として使用する場合は、計算範囲を必要最小限に限定し、全列参照(A:A)ではなく具体的な範囲(A1:A100)を指定することで、パフォーマンスを改善できます。

NETWORKDAYS.INTL関数で営業日の計算をかんたんに

NETWORKDAYS.INTL関数を使えば、開始日と終了日のあいだにある営業日数を、土日以外の週末や祝日を含めて柔軟に計算できます。たとえば、土日以外を休日とする会社や、国ごとに異なる休日カレンダーにもしっかり対応できるため、日程管理や勤怠集計、納期計算がとても効率的になります。

また、WORKDAY.INTL関数やIF関数、FILTER関数などと組み合わせることで、条件に応じた計算や拠点別の処理にも対応でき、実務の複雑なスケジュール管理にも柔軟に対応できます。

日付形式や週末・祝日の指定方法に気をつけることで、エラーを避けながら正確な営業日計算をかんたんに行えるのが、この関数の大きな魅力です。日数を扱うあらゆるシーンで、ぜひNETWORKDAYS.INTL関数を活用してみてください。


※ 掲載している情報は記事更新時点のものです。

※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。

関連記事