Excelで平日のみを数えたいときは、土曜日と日曜日を除くだけでなく、祝日リストも反映できる関数を選ぶことが重要です。

勤務日数、納期までの日数、プロジェクトの営業日数、有給休暇の集計などでは、単純な日付の引き算では実際の稼働日とずれてしまいます。

開始日と終了日が分かっている場合は、NETWORKDAYS関数を使う方法が基本です。

土日以外を休日にしたい場合や、会社独自の休業日を除きたい場合は、NETWORKDAYS.INTL関数も役立ちます。

平日のみをカウントする基本式

=NETWORKDAYS(開始日,終了日,祝日一覧)

土日を除き、さらに祝日一覧に入力した日付も除外して営業日数を求められます。

この記事では、平日のみのカウント方法から祝日設定、休日パターンの変更、日付が空白の場合の対処までを順に確認していきましょう。

 

NETWORKDAYS関数による営業日数の計算

それではまず、土日祝日を除く平日の日数を求める基本的な方法について解説していきます。

開始日 終了日 祝日一覧 営業日数
2026/9/1 2026/9/30 2026/9/21
2026/9/22
20

 

開始日と終了日を含める数え方

NETWORKDAYS関数では、開始日と終了日の両方を数える対象に含めます。

たとえば月曜日から翌週の金曜日までを指定すると、その間にある土日を除いた10日が結果になります。

開始日が土曜日なら開始日は数えず、終了日が日曜日なら終了日も数えません。

日付同士を引き算した結果に1を足す方法とは異なり、NETWORKDAYS関数は休日を自動で判定します。

サンプルでは、A列に開始日、B列に終了日、D列に祝日を入力し、C列で営業日数を求める構成にします。

NETWORKDAYS関数による営業日数の計算 - 開始日と終了日を含める数え方

C2セルに入力する数式

=NETWORKDAYS(A2,B2,$D$2:$D$3)

A2の開始日からB2の終了日までを対象にし、D2からD3に登録した祝日を除外します。

祝日範囲にドル記号を付けているのは、数式を下方向へコピーしても祝日一覧の参照先を固定するためです。

1行目は見出しとして使い、実際のデータは2行目から入力しましょう。

開始日と終了日が同じ平日なら結果は1となり、同じ日が土日または祝日なら結果は0です。

この性質を理解しておくと、単日の勤務可否や出勤日の判定にも応用できます。

 

祝日一覧を別表で指定する操作

続いては、祝日を除外するための一覧表の作り方を確認していきます。

祝日を数式内へ直接書くよりも、シート上の別の列に日付として登録するほうが、毎年の更新や確認をしやすくなります。

たとえばD1に祝日、D2以降に元日、成人の日、会社の休業日などを入力します。

祝日一覧は連続したセル範囲でなくても構いませんが、管理しやすいよう1列にまとめる方法が実用的です。

NETWORKDAYS関数による営業日数の計算 - 祝日一覧を別表で指定する操作

祝日として扱う値は、文字列ではなくExcelが認識する日付データで入力してください。

セルの表示が2026年9月21日であっても、内部的に日付として保存されていれば問題ありません。

一方で、先頭にアポストロフィが付いた文字列や、日付に見えるだけのテキストは正しく除外されないことがあります。

祝日一覧の注意点

祝日リストには祝日だけでなく、年末年始、夏季休暇、創立記念日、計画休業日なども登録できます。

同じ日付を重複して入力しても通常は結果に重複加算されませんが、一覧を整理しておくと後から確認しやすくなります。

複数年にまたがる案件では、翌年分の祝日も忘れずに追加しておきましょう。

祝日一覧を別シートに置く場合は、たとえば祝日というシート名なら、参照式を祝日!$A$2:$A$30のように指定できます。

共有ブックでは、誰が見ても分かるように祝日一覧の見出しと対象年度を記載しておくと安心です。

 

数式のコピーと結果の確認

続いては、作成した数式を複数行へ反映し、結果を確認する流れを見ていきます。

C2セルにNETWORKDAYS関数を入力したら、セル右下の小さな四角形であるフィルハンドルを下へドラッグします。

これにより、A列とB列の参照は各行に合わせて変わり、祝日範囲だけは固定されたままになります。

数式をコピーする前に、祝日範囲が絶対参照になっているかを必ず確認しましょう。

たとえばC3ではA3とB3を参照する一方、祝日範囲はD2からD3のままです。

数式コピー後のイメージ

C2 =NETWORKDAYS(A2,B2,$D$2:$D$3)

C3 =NETWORKDAYS(A3,B3,$D$2:$D$3)

C4 =NETWORKDAYS(A4,B4,$D$2:$D$3)

結果が想定より1日多い、または少ないと感じた場合は、開始日と終了日が計算に含まれる仕様を最初に確認してください。

また、祝日が土日と重なっていても二重に差し引かれることはありません。

土日に該当する日はもともと除外対象であるため、祝日一覧に登録しても営業日数は変化しない仕組みです。

【操作のポイント】祝日リストは絶対参照にして、数式をコピーしても参照範囲がずれないようにします。

 

土日だけを除外する平日カウント

続いては、祝日を考慮せず土曜日と日曜日だけを除いて平日を数える方法を確認していきます。

案件 開始日 終了日 平日数
見積作成 2026/9/7 2026/9/18 10

 

祝日引数を省略する基本式

土日だけを除外する平日カウント - 祝日引数を省略する基本式

NETWORKDAYS関数は、3番目の祝日引数を省略できます。

祝日を除外しない場合は、C2セルへ次のように入力しましょう。

=NETWORKDAYS(A2,B2)

この数式では、A2の開始日からB2の終了日までのうち、月曜日から金曜日だけをカウントします。

祝日一覧を持たない簡易的なスケジュール表では、2つの引数だけで十分に使えます。

ただし、日本の祝日が入る月では実際の営業日数より多く表示される可能性があります。

社内の作業計画、顧客への納期回答、給与計算の補助など、休日の正確性が必要な業務では祝日引数も指定するほうが安全です。

一時的な集計や、祝日を通常勤務日として扱うシフト制の表では、この簡易式が便利でしょう。

 

開始日と終了日を逆にした場合の扱い

土日だけを除外する平日カウント - 開始日と終了日を逆にした場合の扱い

続いては、日付の前後関係によって結果がどう変わるかを確認していきます。

NETWORKDAYS関数では、開始日が終了日より後になっていても計算できます。

この場合、結果はマイナスの営業日数として返されます。

たとえばA2が2026年9月18日、B2が2026年9月7日なら、平日の差はマイナス10日です。

日付入力の順序が逆でもエラーにはなりませんが、意図しない負の値を見逃さないことが大切です。

案件一覧で本来は正の営業日数だけを表示したい場合、入力規則や条件付き書式を併用すると入力ミスを発見しやすくなります。

たとえば終了日が開始日より前のセルを赤くするルールを作れば、日付の取り違えを視覚的に確認できます。

期間の向きを問わず絶対値で日数を表示したい場合

=ABS(NETWORKDAYS(A2,B2))

ただし、前後関係の誤入力を検知したい表では、ABS関数で負の値を消さないほうが適しています。

 

日付の引き算との使い分け

続いては、単純な日付の引き算と平日カウントの違いを確認していきます。

=B2-A2という式は、開始日から終了日までの経過日数を求める計算です。

この式には土日や祝日の概念がないため、カレンダー上の日数を扱うときに向いています。

一方で、作業可能日、稼働日、受付日、銀行営業日などを求めるならNETWORKDAYS関数が適切です。

日数という言葉だけで式を選ばず、暦日を求めたいのか営業日を求めたいのかを先に決めましょう。

たとえば9月1日から9月30日までの日付差は29日ですが、両端を含む暦日は30日です。

さらに土日祝日を除く営業日数は、祝日の数によって20日前後になります。

同じ期間でも定義が異なるため、表の見出しには営業日数や暦日数と明記すると誤解を防げます。

【操作のポイント】土日だけを除外するなら祝日引数を省略できますが、実務用の納期計算では祝日一覧を加える方法が基本です。

 

NETWORKDAYS.INTL関数による休日設定

続いては、土日以外の曜日を休業日にする場合に使うNETWORKDAYS.INTL関数について解説していきます。

開始日 終了日 休日設定 営業日数
2026/9/1 2026/9/30 日曜のみ 25
営業日数計算.xlsx – Excel − □ ×
ファイル ホーム 挿入 ページ レイアウト 数式 データ 校閲 表示
貼り付け  太字 罫線 中央揃え  Σ オートSUM  並べ替えとフィルター
fx=NETWORKDAYS.INTL(A2,B2,11,$D$2:$D$3)
A B C D
1 開始日 終了日 営業日数 祝日
2 2026/9/1 2026/9/30 25 2026/9/21
C2へ数式を入力
➤

 

休日コードによる曜日指定

それではまず、休日コードで休みの曜日を設定する方法について解説していきます。

NETWORKDAYS.INTL関数は、開始日、終了日、休日、祝日の順で引数を指定します。

=NETWORKDAYS.INTL(A2,B2,11,$D$2:$D$3)

この式の11は日曜日のみを休日にするコードです。

土日休みではない勤務体系では、NETWORKDAYS.INTL関数を使うことで実態に近い営業日数を求められます。

一般的な土日休みは1、日曜日と月曜日を休みにする場合は2、月曜日と火曜日を休みにする場合は3というように、休日となる連続した2曜日をコードで指定できます。

日曜日だけを休日にする11、月曜日だけを休日にする12など、週1日の定休日にも対応可能です。

曜日コードを利用する際は、表の近くに休日の条件を書いておくと、数式を見ない人にも集計ルールが伝わります。

 

文字列指定による不規則な休日設定

続いては、連続しない曜日を休日にする文字列指定について確認していきます。

NETWORKDAYS.INTL関数の3番目の引数には、月曜日から日曜日までの7桁の文字列も指定できます。

0は勤務日、1は休日を表します。

月曜日と水曜日を休日にする例

=NETWORKDAYS.INTL(A2,B2,”1010000″,$D$2:$D$3)

左から月、火、水、木、金、土、日の順で、月曜と水曜を1にします。

シフト制や店舗営業など、土日休みという前提に当てはまらない表では7桁の文字列指定が有効です。

文字列を入力するときは、月曜日を先頭にする順番を間違えないよう注意しましょう。

たとえば土曜日と日曜日を休みにする文字列は0000011です。

曜日を横に並べた確認用の表を作り、0と1の意味を併記しておくと設定ミスを減らせます。

 

祝日と定休日を同時に除外する設定

続いては、独自の定休日と祝日を同時に反映する方法を確認していきます。

NETWORKDAYS.INTL関数の4番目の引数へ祝日一覧を指定すれば、休日コードで設定した曜日と祝日の両方が除外されます。

日曜定休の店舗で、祝日も休業日としている場合に便利な考え方です。

曜日休と個別休業日を別々に管理し、数式でまとめて判定することで集計の修正が容易になります。

祝日が営業日に当たる場合だけを休みにする企業では、祝日一覧へ対象日だけを登録しましょう。

反対に、祝日でも営業する場合は、その日を祝日一覧へ入れないことで通常の勤務日として扱えます。

営業日数の計算ルールは部署や拠点ごとに異なることもあります。

複数の休日パターンが必要なら、休日一覧と休日コードをそれぞれの表に分けて管理すると見通しが良くなります。

【操作のポイント】NETWORKDAYS.INTL関数では、休日コードまたは7桁の文字列で会社ごとの休日体系を反映できます。

 

空白セルとエラーを防ぐ数式

続いては、開始日または終了日が未入力のときに不要な計算結果を表示しない方法を確認していきます。

開始日 終了日 営業日数の式
2026/9/1 空白表示

 

IF関数で未入力時を空白にする方法

それではまず、日付が未入力なら結果を空白にする数式について解説していきます。

入力途中の一覧表でNETWORKDAYS関数だけを入れると、空白セルを日付として扱い、意図しない大きな数値やエラーが表示される場合があります。

このようなときはIF関数で入力状態を確認します。

=IF(OR(A2=””,B2=””),””,NETWORKDAYS(A2,B2,$D$2:$D$30))

A2またはB2が空白なら空白を返し、両方に日付があるときだけ営業日数を計算する式です。

作業予定表や申請管理表では、未入力行を空白表示にすることで表全体が読みやすくなります。

OR関数は複数の条件のうち、どれか1つでも当てはまるとTRUEになる関数です。

この例では開始日と終了日のどちらかが空欄であれば、NETWORKDAYS関数を実行しません。

空白の代わりに未入力と表示したい場合は、式の2つ目の引数を””ではなく”未入力”に変更できます。

 

日付以外の値を入力した場合の確認

続いては、日付セルに文字や誤った値が入った場合の対応を確認していきます。

NETWORKDAYS関数は正しい日付を引数として必要とするため、日付として認識されない文字列が含まれるとエラーになることがあります。

入力するセルには、データの入力規則で日付を指定しておくと、誤入力を事前に抑えられます。

表示形式を日付に整えるだけではなく、セルの値そのものが日付データになっていることを確認しましょう。

値が左寄せで表示されている場合は文字列の可能性がありますが、配置だけで判断せず数式バーも確認することが大切です。

エラーの表示を一律で隠すためにIFERROR関数を使う方法もあります。

=IFERROR(NETWORKDAYS(A2,B2,$D$2:$D$30),””)

ただし、IFERROR関数だけでは日付の誤入力という原因そのものに気付きにくくなります。

重要な業務表では、IF関数による空白判定と入力規則を組み合わせる方法が適しています。

 

営業日数がマイナスになる入力の判定

続いては、終了日が開始日より前になったときの判定方法を確認していきます。

入力ミスを分かりやすく示すには、終了日が開始日より小さい場合にメッセージを表示する式が便利です。

=IF(OR(A2=””,B2=””),””,IF(B2<A2,”日付を確認”,NETWORKDAYS(A2,B2,$D$2:$D$30)))

この式では、未入力なら空白、日付の順序が逆なら日付を確認と表示し、それ以外では営業日数を返します。

計算式に判定を組み込むと、データ入力者以外も異常値の理由を判断しやすくなります。

条件付き書式で日付を確認と表示されたセルに色を付ければ、さらに見落としにくくなるでしょう。

集計用のシートでは、エラーを単に消すよりも、入力者が修正できるメッセージを残す考え方が有効です。

【操作のポイント】未入力と日付の前後逆転を先に判定してからNETWORKDAYS関数を実行すると、実務用の表が安定します。

 

営業日数を活用する納期管理表

続いては、求めた営業日数を納期管理や作業計画に活用する考え方を確認していきます。

案件名 受付日 納期 残営業日
資料作成 2026/9/1 2026/9/15 10

 

今日から納期までの残営業日

それではまず、今日から納期までに残っている営業日数を表示する方法について解説していきます。

開始日にTODAY関数、終了日に納期セルを指定すると、ファイルを開いた日を基準に残営業日を更新できます。

=NETWORKDAYS(TODAY(),C2,$F$2:$F$30)

この例ではC2が納期、F2からF30が祝日一覧です。

TODAY関数を使う表は、毎日手作業で基準日を更新しなくても残日数を確認できます。

納期当日が平日なら1と表示されるため、当日を残日数に含めない運用では結果から1を引くか、翌日から数えるように設定します。

納期を過ぎた場合は負の数になるので、条件付き書式で赤色にすると対応漏れを防ぎやすくなります。

 

所要営業日から完了予定日を求める方法

続いては、必要な作業日数から完了予定日を求める方法を確認していきます。

営業日数を数えるNETWORKDAYS関数とは逆に、何営業日後の日付を求めるときはWORKDAY関数を使用します。

=WORKDAY(A2,B2,$F$2:$F$30)

A2を受付日、B2を必要営業日数として、土日祝日を除いた完了予定日を返します。

残営業日を数えるNETWORKDAYS関数と、営業日後の日付を返すWORKDAY関数はセットで覚えると便利です。

土日以外を休日にする場合には、WORKDAY.INTL関数を使います。

たとえば日曜日のみ休業の店舗であれば、NETWORKDAYS.INTL関数と同じ休日コード11を指定できます。

日数の数え始め方は業務ルールによって異なるため、受付日当日を1日目にするか、翌営業日を1日目にするかを事前に統一しましょう。

 

条件付き書式による期限の見える化

続いては、営業日数の結果を見やすくする条件付き書式の活用を確認していきます。

残営業日が3日以下の案件を目立たせると、優先して対応すべき仕事を一覧から探しやすくなります。

営業日数の列を選択し、ホームタブの条件付き書式からセルの強調表示ルールを設定します。

残営業日が0以下は赤、1から3は黄色のように区分すると、期限の状態を直感的に判断できます。

休日を含む単純な日付差で色分けすると、週末をまたぐ案件が必要以上に緊急に見えることがあります。

営業日数を基準にすれば、実際に対応可能な日数に沿った管理表になります。

重要案件では担当者、進捗、完了予定日も並べると、日数だけでは判断できない状況も共有しやすくなるでしょう。

【操作のポイント】NETWORKDAYS関数で残営業日を計算し、WORKDAY関数で完了予定日を求めると納期管理の精度が上がります。

 

まとめ 土日祝日を除く平日のカウント方法

目的 利用する関数 主な用途
土日祝日を除く日数 NETWORKDAYS 一般的な営業日計算
独自休日を除く日数 NETWORKDAYS.INTL シフト制や定休日管理

Excelで平日のみをカウントしたい場合は、まずNETWORKDAYS関数を使う方法を押さえましょう。

=NETWORKDAYS(開始日,終了日,祝日一覧)と入力すれば、土曜日、日曜日、祝日を除いた営業日数を求められます。

祝日一覧には法定祝日だけでなく、会社独自の休業日や長期休暇も追加できます。

土日休みではない職場や店舗では、NETWORKDAYS.INTL関数で休日の曜日を設定することがポイントです。

日曜日だけを休みにする、曜日ごとに異なるシフトを組むといった運用にも対応できます。

未入力セルがある表ではIF関数を組み合わせ、空白表示や日付確認のメッセージを設定すると、見やすく安全な管理表になります。

さらにTODAY関数、WORKDAY関数、条件付き書式を組み合わせれば、残営業日や完了予定日を自動で管理できます。

暦日ではなく実際に作業できる日数を基準にすることで、納期、勤務、案件進行の判断をより現実的なものにしていきましょう。

ABOUT ME
white-circle7338
私自身が今まで経験・勉強してきた「エクセル」「ビジネス用語」「生き方」などの情報を、なるべくわかりやすく、楽しく、発信していきます。 一緒に人生を楽しんでいきましょう