WORKDAY関数の使い方|営業日の計算と祝日リストの作り方

WORKDAY関数は、土日と指定した祝日を除いて「〇営業日後」の日付を返す関数です。納期や支払期日の計算に使います。引数は3つで、祝日はExcelに入っていないため自分でリストを用意する必要があります。

この記事でわかること

  • WORKDAY関数の3つの引数と、開始日の数え方
  • 祝日リストの作り方と、絶対参照で固定する理由
  • 土曜出勤・週休3日の会社で使うWORKDAY.INTL
  • 「翌営業日」「前営業日」を求める書き方
  • 結果が5桁の数字になる・祝日が除外されないときの直し方


目次

WORKDAY関数の構文と引数

構文

=WORKDAY(開始日, 日数, [祭日])
引数指定するもの注意点
開始日起点となる日付この日自体は日数に数えない
日数何営業日進める(戻す)か正なら未来、負なら過去。小数は切り捨て
祭日休業日として除く日付の範囲省略可。省略すると土日だけを除く

除外されるのは土曜・日曜と、祭日に指定した日付です。それ以外の平日を1営業日として数えます。

WORKDAY関数はExcel 2016以降のどのバージョンでも使えます。動的配列関数のような世代差はありません。

WORKDAY関数の使い方|営業日の計算と祝日リストの作り方の解説図1

基本の使い方

A2に受注日、B2に「受注から5営業日後の納期」を出す例です。祝日はH列に一覧を作ってあるとします。

=WORKDAY($A2, 5, $H$2:$H$30)

⚠️ 結果が5桁の数字になったら

46123 のような数字が表示されることがあります。これはエラーではなく、日付のシリアル値がそのまま出ている状態です。

セルを選び、「ホーム」タブの表示形式を「短い日付形式」に変えれば日付になります。既存のセルに数式を入れた場合は書式が引き継がれるため、標準書式のセルでだけ起きます。

祝日リストは絶対参照で固定する

$H$2:$H$30 のようにドル記号で固定します。固定せずに下へコピーすると、参照範囲が1行ずつずれて、下の行ほど祝日が抜け落ちます。

祝日リストは日付として入力してください。2026/1/1 は日付、2026年1月1日 と手で打った文字列は日付ではありません。右寄せなら日付、左寄せなら文字列です。

祝日リストの作り方

Excelには日本の祝日が入っていません。次のいずれかで用意します。

  1. 別シートに「祝日」列を作り、その年の祝日を日付として並べる
  2. 年末年始・夏季休暇・創立記念日など、会社独自の休業日も同じ列に足す
  3. 範囲に名前を付けておくと、数式が =WORKDAY($A2, 5, 祝日) と読みやすくなる

土日と重なる祝日を混ぜても問題ありません。もともと土日は除外されるため、二重に引かれることはない仕様です。


実務でよく使う4パターン

① 翌営業日・前営業日を求める

「その日が営業日ならその日、休みなら次の営業日」を出したい場面は多くあります。開始日を1日前にずらすのが定石です。

=WORKDAY($A2-1, 1, $H$2:$H$30)

A2が平日ならA2自身が返り、A2が土日祝なら次の営業日が返ります。前営業日なら =WORKDAY($A2, -1, $H$2:$H$30) です。

② 締め日と支払日を組み立てる

「月末締め・翌月末払い、休日なら前営業日」という条件は、EOMONTH関数と組み合わせます。

=WORKDAY(EOMONTH($A2, 1)+1, -1, $H$2:$H$30)

EOMONTHで翌月末を求め、その翌日から1営業日戻すことで「翌月末以前の直近の営業日」になります。

③ 土曜出勤の会社で使う(WORKDAY.INTL)

WORKDAYは土日固定です。休みの曜日を変えるならWORKDAY.INTL関数を使います。

=WORKDAY.INTL($A2, 5, 11, $H$2:$H$30)

第3引数の週末番号で休みの曜日を指定します。

番号休みになる曜日
1(省略時)土曜・日曜
2日曜・月曜
7金曜・土曜
11日曜のみ
12月曜のみ
17土曜のみ

曜日を自由に組み合わせたいときは、7文字の文字列で指定します。月曜から日曜の順で、1が休業日、0が営業日です。

  • "0000011" … 土日休み(番号1と同じ)
  • "0000001" … 日曜のみ休み(番号11と同じ)
  • "0001011" … 木・土・日休み

すべての曜日を1にすることはできません。

④ 期間内の営業日数を数える

日付ではなく日数が欲しい場合は、NETWORKDAYS関数です。

=NETWORKDAYS($A2, $B2, $H$2:$H$30)

⚠️ WORKDAYと違い、NETWORKDAYSは開始日と終了日の両方を数に含めます。同じ日を指定すれば、それが平日なら1が返ります。

WORKDAY関数の使い方|営業日の計算と祝日リストの作り方の解説図2

うまくいかないときの原因と直し方

症状主な原因直し方
5桁の数字が表示されるセルの表示形式が「標準」表示形式を日付に変える
#VALUE!開始日が文字列として入っているDATEVALUE関数で変換するか入力し直す
#VALUE!祭日の範囲に文字列が混ざっている祝日リストを日付型に揃える
#NUM!結果がExcelの扱える日付を外れた日数の桁を確認する
祝日が除外されない祭日の範囲が相対参照のまま$H$2:$H$30 の形に固定する
祝日が除外されない祝日が日付でなく文字列左寄せなら文字列。入力し直す
土曜を営業日にしたいWORKDAYは土日固定WORKDAY.INTLで週末番号11を指定する
1日ずれる開始日を数に含めていると思っている開始日は数えない。前営業日から起算する

祝日が効いていないかを確かめる方法

祝日リストが本当に読まれているかは、切り分けの1本を書けば分かります。

=COUNTIF($H$2:$H$30, DATE(2026,1,1))

これが0なら、その日付は範囲に日付として入っていません。文字列で入っているか、範囲の外にあります。祝日リストの検算は、この1行が最短です。

WORKDAY関数の使い方|営業日の計算と祝日リストの作り方の解説図3

似た関数との使い分け

関数対応バージョン返すもの・選ぶ場面
WORKDAY2016〜土日祝を除いた〇営業日後の日付
WORKDAY.INTL2016〜同上。休みの曜日を自分で決める
NETWORKDAYS2016〜期間内の営業日数(両端を含む)
NETWORKDAYS.INTL2016〜同上。休みの曜日を自分で決める
EOMONTH2016〜〇ヶ月後の月末の日付
EDATE2016〜〇ヶ月後の同じ日
=A2+5 の単純加算2016〜暦日で数える(土日を除かない)

選び方は単純です。欲しいものが日付ならWORKDAY系、日数ならNETWORKDAYS系。そのうえで、休みが土日以外を含むなら .INTL の付いたほうを選びます。

「〇日後」を暦日で出すなら、そもそも関数は要りません。=A2+5 で足せます。営業日で数える必要があるかどうかが、最初の分かれ道です。


よくある質問

Q1:開始日は営業日数に含まれますか?

含まれません。金曜日を開始日にして1を指定すると、翌週の月曜日が返ります。開始日自身を候補に入れたいときは、=WORKDAY(A2-1, 1, 祝日) のように1日前から起算してください。

Q2:日本の祝日を自動で判定できますか?

Excelの標準機能では判定できません。祝日データが組み込まれていないためです。祝日の一覧は公的機関がファイル形式で公開しているので、それを取り込んで祝日シートに貼り付ける運用が一般的です。振替休日や、年によって日付が動く祝日もあるため、年に1回の更新作業として運用に組み込んでおくと安全です。

Q3:会社独自の休業日も除外できますか?

できます。祭日の範囲に、年末年始・夏季休暇・創立記念日などを日付として追加するだけです。祝日と会社休業日を分けて管理したい場合は、2つの列を縦につないだ範囲を指定するか、それぞれを別の列に置いて範囲を広めに取ります。

Q4:土日祝を除いた日数を数えたいのですが、WORKDAYで出せますか?

出せません。WORKDAYが返すのは日付です。日数を数えるのはNETWORKDAYS関数の役割で、=NETWORKDAYS(開始日, 終了日, 祝日) と書きます。両端の日を含めて数える点だけ注意してください。

Q5:結果に曜日も一緒に表示できますか?

セルの表示形式をユーザー定義にして yyyy/m/d(aaa) と設定すると、2026/4/6(月) のように曜日つきで表示されます。値そのものは日付のままなので、その後の計算にもそのまま使えます。


まとめ

WORKDAYの要点
  • 引数は開始日・日数・祭日の3つ。開始日は数に含まない
  • 祝日はExcelに入っていない。自分でリストを作り、F4で固定する
  • 結果が5桁の数字なら表示形式を日付に変えるだけ
  • 翌営業日は =WORKDAY(A2-1, 1, 祝日)。前営業日は日数を -1 に
  • 土曜出勤ならWORKDAY.INTL、日数が欲しいならNETWORKDAYS

※関数の対応バージョンはExcelの一般提供時点の情報にもとづいています。祝日は法令の改正や振替により変動するため、祝日リストは年度ごとに最新の情報で更新してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

はじめまして、白石です。製造業の生産管理で15年、毎日の実績集計と帳票づくりをExcelでやってきました。マクロを組もうとして早々に挫折し、そこからは「関数と表の機能だけでどこまでやれるか」でしのいできた口です。部門では「この集計どうやるの」と聞かれる係になり、聞かれた内容を手元にメモし続けました。そのメモがいつのまにか、関数名ではなくやりたいことから引く形になっていて、それがこのサイトのもとになっています。Excelは同じことをやるのに何通りもやり方があって、しかもバージョンによって使える関数が違います。ここでは実際に動かして確かめた式だけを載せ、つまずきやすいところと使えないバージョンを先に書くようにしています。

目次