【Excel】エクセルで平日のみをカウントする方法(曜日を除外・平日のみ表示・平日のみ入力)
エクセルで勤務日数、営業日、作業日、出勤日などを数えるとき、土曜日と日曜日を含めた単純な日数では実務に合わない場合があります。
開始日と終了日から平日のみを自動でカウントするには、NETWORKDAYS関数やCOUNTIFS関数を目的に応じて使い分けることが大切です。
また、平日だけを一覧表示したい場合や、土日には日付を入力できないようにしたい場合にも、数式やデータの入力規則を利用できます。
平日のみを数える主な方法
・祝日を含めずに営業日数を求めるならNETWORKDAYS関数
・曜日を条件にして件数を数えるならCOUNTIFS関数
・土日を除いた日付一覧を作るならWORKDAY関数
・土日入力を防ぐならデータの入力規則
この記事では、エクセルで曜日を除外しながら平日のみをカウント、表示、入力する方法を、サンプルデータと数式を使って詳しく解説します。
エクセルで平日のみをカウントする方法1【NETWORKDAYS関数】
それではまず、開始日から終了日までの平日をまとめて数えるNETWORKDAYS関数について解説していきます。
| 開始日 | 終了日 | 平日数 |
|---|---|---|
| 2026/9/1 | 2026/9/30 | 22 |
開始日と終了日を指定する数式
NETWORKDAYS関数は、指定した期間のうち土曜日と日曜日を自動的に除外した日数を返す関数です。
たとえば、A2セルに開始日、B2セルに終了日を入力し、C2セルに平日数を表示する場合は、次の数式を使います。
=NETWORKDAYS(A2,B2)
この数式では、開始日と終了日の両方が平日であれば、その日もカウント対象になります。
9月1日から9月30日までのように月単位で期間を指定すると、土日を除いた勤務日数や営業日数をすぐに把握できます。
終了日が開始日より前になっている場合は負の値になるため、日付の入力順も確認しましょう。
日付が文字列として入力されていると正しく計算できないことがあります。
セルの表示形式を日付に設定し、数式バーで日付として認識されているか確認することが重要です。
【操作のポイント】開始日と終了日は、見た目が日付でも文字列になっていないか確認します。
祝日を除外する営業日数の計算
会社の営業日数を求めるなら、土日だけでなく祝日も除外する必要があります。
たとえば、E2からE10に祝日の日付を入力している場合は、NETWORKDAYS関数の3番目の引数に祝日範囲を指定します。

=NETWORKDAYS(A2,B2,$E$2:$E$10)
この数式では、A2からB2までの期間から土日とE2からE10に登録された日付を除外して、平日のみをカウントします。
祝日一覧は日付だけを縦方向に並べると、別の月や別の表でも同じ範囲を参照しやすくなります。
毎年使う勤務表では、祝日を別シートにまとめ、祝日リストに名前を付けて参照する方法も便利です。
祝日が期間外にあっても計算結果に影響しないため、年間の祝日をまとめて指定しても問題ありません。
【操作のポイント】祝日範囲は絶対参照にして、数式を下へコピーしても範囲がずれないようにします。
月ごとの勤務日数に応用する手順
NETWORKDAYS関数は、月初日と月末日を自動で求める関数と組み合わせると、月ごとの平日数を管理できます。
A2セルに対象月の任意の日付を入れた場合、月初日にはEOMONTH関数、月末日にもEOMONTH関数を使えます。

=NETWORKDAYS(EOMONTH(A2,-1)+1,EOMONTH(A2,0),祝日範囲)
EOMONTH(A2,-1)は前月末日を返すため、そこへ1を足すと当月の初日になります。
EOMONTH(A2,0)はA2セルが含まれる月の末日です。
この仕組みを使えば、A列へ各月の日付を並べ、B列へ数式をコピーするだけで、月別の営業日一覧を作成できます。
締め日が月末ではない場合も、開始日と終了日をセル参照に変更すれば対応可能です。
【操作のポイント】月別集計では、対象月を示すセルを変更するだけで日数が更新される形にします。
曜日を除外して平日のみを数える方法2【COUNTIFS関数】
続いては、入力済みの日付データから平日に該当する件数だけを数える方法を確認していきます。
| 日付 | 曜日番号 | 判定 |
|---|---|---|
| 2026/9/7 | 1 | 平日 |
| 2026/9/12 | 6 | 土日 |
WEEKDAY関数で曜日番号を取り出す方法
すでに日付の一覧があり、その中に平日が何件あるか数えたい場合は、まずWEEKDAY関数で曜日番号を確認すると理解しやすくなります。
A2セルの日付に対し、月曜日を1、日曜日を7として表示する数式は次のとおりです。
=WEEKDAY(A2,2)
第2引数を2にすると、月曜日から金曜日は1から5、土曜日は6、日曜日は7になります。
この並びなら、5以下を平日、6以上を土日として判定できるため、条件式を作りやすくなります。
B2セルに数式を入力したら、セル右下のフィルハンドルを下へドラッグして、日付一覧の最終行までコピーします。
曜日名を表示したいだけなら、セルの表示形式をユーザー定義にしてaaaやaaaaを設定する方法もあります。
【操作のポイント】WEEKDAY関数の第2引数を2にすると、平日と土日の境目を5と6で判断できます。
補助列を使った平日件数の集計
曜日番号をB列に表示した場合、平日の件数はCOUNTIF関数で集計できます。
日付がA2からA31、曜日番号がB2からB31にあるなら、5以下の値を数える数式を入力します。

=COUNTIF(B2:B31,”<=5″)
この方法は、計算の途中経過が表で見えるため、日付が正しく入力されているかを点検しやすい点が特徴です。
日付が空白の行でWEEKDAY関数を使うと意図しない番号が表示されることがあるため、空白なら空白を返すIF関数を加えることもできます。
たとえば、=IF(A2=””,””,WEEKDAY(A2,2))とすれば、日付のない行には結果を表示しません。
勤怠表や受付記録のように一覧を確認しながら集計する表では、補助列を残しておくと管理しやすいでしょう。
【操作のポイント】補助列を利用すると、平日判定の根拠を他の人にも確認してもらいやすくなります。
SUMPRODUCT関数だけで平日を集計する方法
曜日番号の補助列を作らず、日付範囲だけから平日の件数を求めたい場合はSUMPRODUCT関数を使います。
A2からA31に日付が入力されているケースでは、次の数式で月曜日から金曜日だけを合計できます。

=SUMPRODUCT(–(WEEKDAY(A2:A31,2)<=5))
WEEKDAY関数で各日付の曜日番号を配列として求め、5以下かどうかを判定し、TRUEとFALSEを1と0へ変換して合計する仕組みです。
空白セルが混ざる可能性があるなら、日付が空白ではない条件も加えると安全です。
=SUMPRODUCT((A2:A31<>””)*(WEEKDAY(A2:A31,2)<=5))
曜日ごとの売上、平日に受け付けた問い合わせ、作業記録の件数など、条件に合う日付データを数える場面で活用できます。
【操作のポイント】日付範囲に空白が含まれる表では、空白ではない条件も数式へ加えます。
平日のみを表示する日付一覧【WORKDAY関数】
続いては、土日を飛ばして平日の日付だけを連続表示するWORKDAY関数を確認していきます。
| 連番 | 平日の日付 | 曜日 |
|---|---|---|
| 1 | 2026/9/1 | 火 |
| 2 | 2026/9/2 | 水 |
基準日から次の平日を求める数式
WORKDAY関数は、基準日から指定した営業日数だけ進んだ日付を返す関数です。
F2セルに開始日を入力し、A2セルに1、A3セルに2という連番を入れた場合、B2セルには次の数式を入力します。
=WORKDAY($F$2,A2-1,$H$2:$H$10)
開始日が平日なら、連番が1のときに開始日そのものを表示するため、A2から1を引いています。
WORKDAY関数は土日を自動で飛ばし、H2からH10にある祝日も除外します。
そのため、金曜日の次には月曜日を表示し、祝日があればさらに次の営業日を返します。
平日だけの予定表、作業計画、連続した受付番号の管理に向く方法です。
【操作のポイント】開始日を固定するセル参照にはドル記号を付けて、オートフィル時のずれを防ぎます。
オートフィルで平日一覧を作成する手順
B2セルにWORKDAY関数を入力した後は、セル右下にある小さな四角のフィルハンドルを下方向へドラッグします。
または、隣のA列に連続データがある場合は、フィルハンドルをダブルクリックすると入力済みの行まで数式をコピーできます。
数式をコピーするとA列の連番だけが変化し、B列には平日のみの日付が順番に表示されます。
曜日の表示はC2セルに=TEXT(B2,”aaa”)と入力すると、月、火、水のように表示できます。
日付の表示形式をyyyy/m/dにすると年を含めた記録に、m/dにすると一覧をコンパクトにできます。
数式を一度作れば、開始日や祝日リストを変えるだけで日程全体が更新される点が大きな利点です。
【操作のポイント】数式コピー後は、土日や祝日が一覧へ混入していないか先頭付近と月末付近を確認します。
土日以外の休日にも対応するWORKDAY.INTL関数
通常のWORKDAY関数は土曜日と日曜日を休日として扱いますが、業種によって休日の組み合わせは異なります。
たとえば日曜日と月曜日を休業日にする場合は、WORKDAY.INTL関数を利用します。
=WORKDAY.INTL($F$2,A2-1,2,$H$2:$H$10)
第3引数の2は、日曜日と月曜日を週末として扱う指定です。
さらに細かい休日設定が必要なときは、月曜から日曜までを0と1で並べた7文字の文字列を第3引数に指定する方法もあります。
たとえば土曜日のみを休日にする場合は0000010、日曜日のみを休日にする場合は0000001を使います。
シフト制や変則的な営業日に合わせて日付を生成する場合は、WORKDAY.INTL関数を選びましょう。
【操作のポイント】独自の休日体系では、実際の休業日と第3引数の指定が一致しているかテストします。
平日のみ入力するデータの入力規則
続いては、土日の日付を入力したときに警告を表示し、平日のみ入力できるようにする設定を確認していきます。
| 入力日 | 判定 | 入力可否 |
|---|---|---|
| 2026/9/11 | 金曜日 | 可 |
| 2026/9/12 | 土曜日 | 不可 |
ユーザー設定で平日だけを許可する設定
入力予定日や申請日などに土日を登録させたくない場合は、データの入力規則を設定します。
まず、平日のみを入力させたい範囲を選択します。
リボンのデータタブからデータの入力規則を選び、設定タブの入力値の種類でユーザー設定を選択しましょう。
=WEEKDAY(A2,2)<=5
選択範囲の先頭セルがA2である場合、この数式を入力すると、月曜日から金曜日だけを許可できます。
土曜日または日曜日を入力すると、エラーメッセージが表示され、値を確定できません。
入力規則の数式は、選択範囲の左上セルを基準に書くことが重要です。
たとえばA2からA100を選択しているなら、数式もA2を参照します。
【操作のポイント】範囲選択後に入力規則を開き、先頭セルに合わせた相対参照の数式を設定します。
祝日も入力不可にする条件式
土日だけでなく祝日も入力不可にしたい場合は、COUNTIF関数を組み合わせます。
祝日一覧をH2からH10に作成している場合、次の式を入力規則のユーザー設定へ指定します。
=AND(WEEKDAY(A2,2)<=5,COUNTIF($H$2:$H$10,A2)=0)
AND関数は複数の条件がすべて満たされたときだけTRUEを返します。
1つ目の条件は月曜日から金曜日であること、2つ目の条件は祝日一覧に同じ日付が存在しないことです。
この設定により、平日であっても会社休日や祝日なら入力を止められます。
祝日リストのセルは実際の日付データとして入力する必要があります。
【操作のポイント】祝日リストの参照範囲は絶対参照にし、入力対象セルだけが行ごとに変わるようにします。
エラーメッセージと入力時メッセージの設定
入力規則では、誤入力時のエラーメッセージと、セルを選択した時点で表示する入力時メッセージも設定できます。
入力時メッセージには、平日の日付を入力してくださいのような短い案内を登録すると親切です。
エラーメッセージには、土日祝日は選択できませんのように、修正方法が分かる文章を設定しましょう。
エラーメッセージのスタイルを停止にすると、条件に合わない日付の登録を確実に防止できます。
ただし、データをコピーして貼り付ける操作では入力規則が意図どおり働かないケースもあるため、重要な表では判定列も併用すると安心です。
入力規則はミスを未然に防ぐ仕組みであり、入力後の監査も組み合わせると精度が高まります。
【操作のポイント】エラー文には禁止理由だけでなく、平日の日付へ修正する案内も書きます。
平日判定と曜日表示の応用
続いては、日付ごとに平日かどうかを表示し、集計や条件付き書式へ活用する方法を確認していきます。
| 日付 | 曜日 | 平日判定 |
|---|---|---|
| 2026/9/14 | 月 | 平日 |
| 2026/9/13 | 日 | 休日 |
IF関数で平日と休日を表示する数式
日付の横に平日または休日と表示したい場合は、IF関数とWEEKDAY関数を組み合わせます。
=IF(WEEKDAY(A2,2)<=5,”平日”,”休日”)
この数式は、A2セルの日付が月曜日から金曜日なら平日、土曜日または日曜日なら休日と表示します。
曜日名だけを表示するよりも、作業対象かどうかがひと目で分かる点がメリットです。
祝日も休日にしたい場合はCOUNTIF関数を追加し、祝日一覧との一致も確認します。
=IF(AND(WEEKDAY(A2,2)<=5,COUNTIF($H$2:$H$10,A2)=0),”平日”,”休日”)
平日判定の列を作ると、フィルターやピボットテーブルでも利用しやすくなります。
【操作のポイント】判定結果は平日と休日のように表記を統一し、後から条件指定しやすくします。
TEXT関数で曜日を見やすく表示する方法
日付を変更せず、別列に曜日だけを表示したい場合はTEXT関数を使います。
=TEXT(A2,”aaa”)
aaaを指定すると月、火、水のように短い曜日名を表示できます。
aaaaを指定すると月曜日、火曜日、水曜日のように表示されます。
日付セルそのものの表示形式を変更する方法もありますが、日付と曜日を別々の列にすると、一覧表で見やすくなります。
土日だけを目立たせたい場合は、曜日列または日付列へ条件付き書式を設定する方法が有効です。
曜日の文字列ではなく日付データを基準に判定することで、並べ替えや集計の誤りを防げます。
【操作のポイント】曜日表示は見た目の補助にし、計算用には元の日付セルを参照します。
条件付き書式で土日を色分けする設定
土日を除外せずに一覧へ残しながら、平日と区別したい場合は条件付き書式が便利です。
日付がA2からA100にあるなら、対象範囲を選択してから、ホームタブの条件付き書式、新しいルール、数式を使用して書式設定するセルを決定を選びます。
=WEEKDAY(A2,2)>=6
この数式を設定し、塗りつぶしを薄い色にすると、土曜日と日曜日のセルだけを自動で色分けできます。
祝日も同じ色にしたい場合は、=OR(WEEKDAY(A2,2)>=6,COUNTIF($H$2:$H$10,A2)>0)のように設定します。
条件付き書式は日付を追加しても適用範囲内なら自動で判定されるため、月間予定表や作業管理表にも向いています。
【操作のポイント】条件付き書式の適用先が必要な行まで設定されているか、ルールの管理で確認します。
まとめ エクセルで平日のみをカウントする方法(平日のみ表示・曜日を除外・平日のみ入力)
エクセルで平日のみをカウントしたいときは、期間の営業日数を求めるのか、日付一覧から平日だけを数えるのかによって関数を使い分けます。
開始日と終了日から土日を除外して数える場合はNETWORKDAYS関数が基本です。
祝日も除外したいときは、第3引数に祝日リストを指定しましょう。
日付一覧に含まれる平日の件数を数える場合は、WEEKDAY関数で曜日番号を取り出し、COUNTIF関数やSUMPRODUCT関数で集計できます。
平日だけの日付を連続表示したい場合はWORKDAY関数を使うと、土日と祝日を飛ばした予定表を作成できます。
さらに、データの入力規則を設定すれば、土日祝日の誤入力を防ぎ、平日のみ入力できる表にできます。
日付は見た目だけで判断せず、エクセルが日付データとして認識していること、祝日リストが正しく参照されていることも確認しましょう。
目的に合う関数と設定を組み合わせ、勤務日数、営業日、スケジュール管理を正確かつ効率的に進めていきましょう。