エクセル関数辞典 エクセル関数辞典

WEEKDAY・WORKDAY関数の使い方|曜日と営業日の計算

WEEKDAY WORKDAY 曜日 営業日 Excel関数
広告スペース (article-top)

WEEKDAY関数とWORKDAY関数は、曜日の判定と営業日の計算に使うExcelの関数です。WEEKDAY関数は日付の曜日を数値で返し、WORKDAY関数は土日や祝日を除いた営業日を計算します。スケジュール管理、納期計算、勤怠管理など、業務に欠かせない関数です。

各関数の基本構文

WEEKDAY関数

=WEEKDAY(シリアル値, [種類])

WORKDAY関数

=WORKDAY(開始日, 日数, [祝日])

WEEKDAY関数の引数

引数説明必須/任意
シリアル値曜日を調べる日付必須
種類戻り値の形式を指定する数値任意

WORKDAY関数の引数

引数説明必須/任意
開始日起算日となる日付必須
日数加算する営業日数(負の値で過去方向)必須
祝日除外する祝日の日付リスト(セル範囲)任意

WEEKDAY関数の種類パラメータ

種類日曜日月曜日火曜日水曜日木曜日金曜日土曜日
1(既定)1234567
27123456
36012345

種類1が既定値で、日曜=1、土曜=7です。種類2は月曜始まりで、月曜=1、日曜=7です。

実践例1:曜日を日本語で表示する

WEEKDAY関数とCHOOSE関数を組み合わせて、日付の曜日を日本語で表示します。

=CHOOSE(WEEKDAY(A2), "日", "月", "火", "水", "木", "金", "土")

A2が「2026/06/20」(土曜日)の場合、結果は「土」です。

TEXT関数を使う方法もあります。

=TEXT(A2, "AAA")

結果は同様に「土」です。「AAAA」にすると「土曜日」になります。

実践例2:土日を判定する

日付が土日かどうかを判定し、平日と休日を区別します。

=IF(OR(WEEKDAY(A2)=1, WEEKDAY(A2)=7), "休日", "平日")

WEEKDAY関数の種類2を使うとよりシンプルに書けます。

=IF(WEEKDAY(A2, 2)>5, "休日", "平日")

種類2では月曜=1から日曜=7なので、6以上(土曜・日曜)が休日です。

実践例3:WORKDAY関数で営業日を計算

開始日から10営業日後の日付を求めます。

=WORKDAY(A2, 10)

A2が「2026/06/01」(月曜日)の場合、土日を除いた10営業日後の日付が返されます。結果は「2026/06/15」(月曜日)です。

祝日を考慮する場合は、第3引数に祝日リストを指定します。

=WORKDAY(A2, 10, D2:D10)

D2:D10に祝日の日付が入力されている場合、それらの日付も除外して営業日を計算します。

実践例4:2つの日付間の営業日数を求める

NETWORKDAYS関数を使って、2つの日付間の営業日数を計算します。

=NETWORKDAYS(A2, B2)

A2が「2026/06/01」、B2が「2026/06/30」の場合、6月中の営業日数(土日を除く)が返されます。

祝日を除外する場合は第3引数を追加します。

=NETWORKDAYS(A2, B2, D2:D10)

NETWORKDAYS.INTL関数

土日以外の曜日を休日にしたい場合は、NETWORKDAYS.INTL関数を使います。

=NETWORKDAYS.INTL(A2, B2, "0000011")

第2引数の文字列で、各曜日が休日かどうかを指定します。「0000011」は月曜から金曜を稼働日、土曜と日曜を休日にします。

水曜日と日曜日を休日にする場合は次のようにします。

=NETWORKDAYS.INTL(A2, B2, "0010001")

実践例5:条件付き書式で土日に色を付ける

WEEKDAY関数を条件付き書式で使い、カレンダーの土日に色を付ける例です。

条件付き書式のルールに以下の数式を設定します。

土曜日を青くする場合はこの数式を使います。

=WEEKDAY(A2)=7

日曜日を赤くする場合は次の数式を使います。

=WEEKDAY(A2)=1

これにより、日付データが入った範囲で土日が自動的に色分けされます。

よくあるエラーと対処法

#VALUE!エラー

日付として認識できない値を指定した場合に発生します。セルの値が正しい日付形式であることを確認してください。

WORKDAY関数で祝日が除外されない

祝日リストの日付がExcelの日付として正しく認識されていない場合があります。以下を確認してください。

  • 祝日が文字列ではなく日付型で入力されているか
  • 祝日の範囲指定が正しいか
  • 空白セルが含まれていないか

土日以外の休業日パターン

WORKDAY関数は土日を休日として扱います。別の曜日を休日にしたい場合は、WORKDAY.INTL関数を使います。

=WORKDAY.INTL(A2, 10, "0000011")

第2引数の文字列は7文字で、月曜から日曜に対応し、1が休日、0が稼働日です。

祝日リストの管理

日本の祝日は年によって変動します(春分の日、秋分の日、振替休日など)。祝日リストを別シートにまとめて管理することをおすすめします。

祝日リストの管理方法として次のような対応が考えられます。

  • 専用の「祝日」シートを作成し、年ごとの祝日を入力する
  • 名前の定義で「祝日」という名前を付けて数式から参照しやすくする
  • 年度の切り替え時に祝日リストを更新する

関連する日付関数

関数用途
WEEKDAY曜日を数値で返す
WORKDAYn営業日後の日付を返す
WORKDAY.INTLカスタム休日パターンでn営業日後を返す
NETWORKDAYS2日付間の営業日数を返す
NETWORKDAYS.INTLカスタム休日パターンで営業日数を返す
TEXT曜日を文字列で返す(“AAA”など)

Google スプレッドシートでの互換性

WEEKDAY関数、WORKDAY関数ともにGoogle スプレッドシートで利用可能です。WORKDAY.INTL関数やNETWORKDAYS.INTL関数もサポートされています。構文や動作はExcelとほぼ同一ですが、WEEKDAY関数の種類パラメータの選択肢が若干異なる場合があります。

まとめ

WEEKDAY関数とWORKDAY関数は曜日と営業日の計算に特化した関数です。

  • WEEKDAY関数は日付の曜日を数値で返す
  • WORKDAY関数は土日(と祝日)を除いた営業日を計算する
  • NETWORKDAYS関数で2日付間の営業日数を求められる
  • INTL版の関数でカスタム休日パターンに対応できる
  • 祝日リストは別シートで一元管理するのがおすすめ

スケジュール管理や納期計算で欠かせない関数です。祝日リストと組み合わせて、正確な営業日計算を実現しましょう。

広告スペース (article-bottom)

あわせて読みたい