「うちの店は水曜と日曜が定休だけど、10営業日後の納品日っていつになるの?」。スプレッドシートで納期や期限を管理していると、こんな場面がありますよね。
WORKDAY関数なら土日を飛ばして営業日後の日付を出せます。でも、土日以外が休みの職場には対応できません。
そんなときに使うのがWORKDAY.INTL関数です。「どの曜日を休みにするか」を自由に指定して、N営業日後の日付を求められます。
この記事では基本の書き方から週末パターンの指定方法、似た関数との違いまで解説しますよ。
WORKDAY.INTL関数とは?WORKDAYとの違い
WORKDAY.INTL関数(読み方: ワークデイ・インターナショナル関数)は、週末パターンをカスタムしてN営業日後(または前)の日付を返す関数です。
「INTL」は International(国際)の略です。国や業種によって休日が異なることに対応するために作られました。
通常のWORKDAY関数は「土日=休み」が固定です。WORKDAY.INTL関数は、この週末の定義を自由に変えられます。
たとえば次のような職場で活躍しますよ。
- 飲食店・小売店(火曜定休、水曜定休など)
- 美容室・クリニック(月曜定休)
- 海外拠点(金曜・土曜が休みの中東地域など)
- 日曜だけ休みの工場
NOTE
土日が休みの一般的なオフィスワークなら、WORKDAY関数で十分です。土日以外を休みにしたい場合にだけ、WORKDAY.INTL関数を使いましょう。
WORKDAY.INTL関数の基本構文と引数
基本構文
=WORKDAY.INTL(開始日, 日数, [週末], [祝日])
WORKDAY関数の引数に「週末」が追加された形です。全部で4つの引数があります。
引数一覧
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 開始日 | 必須 | 起算日となる日付。この日自体はカウントに含まれません |
| 日数 | 必須 | 数える営業日の数。正の値で未来、負の値で過去を指定します |
| 週末 | 任意 | 週末(休日)とする曜日パターン(省略時は土日) |
| 祝日 | 任意 | 除外する祝日の日付リスト |
戻り値はシリアル値(日付を表す数値)です。そのままだと「45750」のような数字が表示されることがあります。表示形式を日付に変更してくださいね。
WARNING
第3引数が「週末」、第4引数が「祝日」です。WORKDAY関数では第3引数が「祝日」なので、引数の位置がずれる点に注意してください。
第3引数(週末):数値で指定する方法
第3引数には数値を入れて、どの曜日を週末にするかを指定します。
よく使う数値パターンは次のとおりです。
| 数値 | 週末(休日)になる曜日 |
|---|---|
| 1 | 土曜・日曜(デフォルト) |
| 2 | 日曜・月曜 |
| 3 | 月曜・火曜 |
| 4 | 火曜・水曜 |
| 5 | 水曜・木曜 |
| 6 | 木曜・金曜 |
| 7 | 金曜・土曜 |
| 11 | 日曜のみ |
| 12 | 月曜のみ |
| 13 | 火曜のみ |
| 14 | 水曜のみ |
| 15 | 木曜のみ |
| 16 | 金曜のみ |
| 17 | 土曜のみ |
たとえば、金曜・土曜が休みの中東拠点で5営業日後の日付を求めるなら次のように書きます。
=WORKDAY.INTL(A2, 5, 7)
日曜だけ休みの工場なら「11」を指定します。
=WORKDAY.INTL(A2, 5, 11)
第3引数(週末):7文字の文字列で指定する方法
数値パターンにない組み合わせ(たとえば「水曜と日曜が休み」)は、7文字の文字列で指定します。
各文字が月曜から日曜に対応しています。「1」が休日、「0」が稼働日です。
月 火 水 木 金 土 日
↓ ↓ ↓ ↓ ↓ ↓ ↓
0 0 1 0 0 0 1
水曜と日曜が休みなら「0010001」です。
=WORKDAY.INTL(A2, 5, "0010001")
いくつか例を挙げます。
| 文字列 | 休日になる曜日 | 想定される業種 |
|---|---|---|
| “0000011” | 土曜・日曜 | 一般オフィス |
| “0010001” | 水曜・日曜 | 飲食店 |
| “1000001” | 月曜・日曜 | 美容室 |
| “0000001” | 日曜のみ | 工場・小売 |
| “0000000” | 休日なし | 全日稼働 |
TIP
「0000000」を指定すると週末なし(毎日稼働)になります。祝日だけをスキップしてN営業日後を求めたいときに便利ですよ。
WORKDAY.INTL関数の基本的な使い方
数値で週末を指定する(日曜のみ休み)
日曜だけ休みの職場で、2025/4/1(火曜日)から5営業日後の日付を求めます。
=WORKDAY.INTL("2025/4/1", 5, 11)
計算の流れを確認しましょう。
| カウント | 日付 | 曜日 | 説明 |
|---|---|---|---|
| 起算日 | 4/1 | 火 | カウントに含まない |
| 1 | 4/2 | 水 | 営業日 |
| 2 | 4/3 | 木 | 営業日 |
| 3 | 4/4 | 金 | 営業日 |
| 4 | 4/5 | 土 | 営業日(日曜のみ休みなので稼働) |
| — | 4/6 | 日 | スキップ |
| 5 | 4/7 | 月 | 営業日 |
結果は 2025/4/7(月) です。通常のWORKDAY関数なら土日をスキップして4/8になりますが、日曜のみ休みなので土曜もカウントされています。
文字列で週末を指定する(水曜・日曜休み)
水曜と日曜が定休の飲食店で、2025/4/1から5営業日後を求めます。
=WORKDAY.INTL("2025/4/1", 5, "0010001")
| カウント | 日付 | 曜日 | 説明 |
|---|---|---|---|
| 起算日 | 4/1 | 火 | カウントに含まない |
| — | 4/2 | 水 | スキップ(定休日) |
| 1 | 4/3 | 木 | 営業日 |
| 2 | 4/4 | 金 | 営業日 |
| 3 | 4/5 | 土 | 営業日 |
| — | 4/6 | 日 | スキップ(定休日) |
| 4 | 4/7 | 月 | 営業日 |
| 5 | 4/8 | 火 | 営業日 |
結果は 2025/4/8(火) です。水曜と日曜がきちんとスキップされていますね。
祝日も除外する
第4引数に祝日リストを追加すれば、週末と祝日の両方をスキップしてくれます。
=WORKDAY.INTL(A2, 5, "0010001", 祝日!A2:A20)
水曜・日曜を休みにしつつ、祝日シートの日付もスキップした結果が返ります。
NOTE
祝日の設定方法はWORKDAY関数と同じです。別シートに祝日マスタを作って参照する方法がおすすめですよ。
結果を日付形式で表示する
WORKDAY.INTL関数の結果が「45753」のような数値で表示された場合は、表示形式を変更しましょう。
- 結果が入ったセルを選択する
- メニューの「表示形式」→「数字」→「日付」を選ぶ
TEXT関数を使う方法もあります。
=TEXT(WORKDAY.INTL("2025/4/1", 5, "0010001"), "yyyy/mm/dd")
この書き方なら、表示形式を手動で変えなくても最初から日付として表示されます。
実務で使えるWORKDAY.INTL関数の活用例
シフト勤務の納品日を自動計算する
シフト制の店舗で、スタッフごとに定休日が違う場合を考えてみましょう。各スタッフが受けた注文の「5営業日後の納品日」を自動で出します。
| A列(スタッフ名) | B列(受注日) | C列(定休日パターン) | D列(納品日) | |
|---|---|---|---|---|
| 2行目 | 田中 | 2025/4/1 | 0010001 | ? |
| 3行目 | 鈴木 | 2025/4/1 | 1000001 | ? |
| 4行目 | 佐藤 | 2025/4/1 | 0000001 | ? |
C列に各スタッフの週末パターンを文字列で入れておきます。D2セルには次の数式を入力します。
=WORKDAY.INTL(B2, 5, C2, 祝日!A2:A20)
C2セルの値(”0010001″)が第3引数として読み込まれます。数式を下にコピーすれば、スタッフごとに異なる納品日が自動計算されますよ。
マイナス値でN営業日前を出す
日数に負の値を指定すると、過去にさかのぼって営業日を数えられます。
たとえば、水曜・日曜休みの店舗で、2025/4/10から3営業日前を求める場合はこう書きます。
=WORKDAY.INTL("2025/4/10", -3, "0010001")
| カウント | 日付 | 曜日 | 説明 |
|---|---|---|---|
| 起算日 | 4/10 | 木 | カウントに含まない |
| — | 4/9 | 水 | スキップ(定休日) |
| -1 | 4/8 | 火 | 営業日 |
| -2 | 4/7 | 月 | 営業日 |
| — | 4/6 | 日 | スキップ(定休日) |
| -3 | 4/5 | 土 | 営業日 |
結果は 2025/4/5(土) です。水曜と日曜がスキップされています。
「入金日から3営業日前までに請求書を送る」といったルールがある場合に便利です。
TODAY関数と組み合わせて動的に算出する
開始日にTODAY関数を使うと、常に「今日からN営業日後」を自動計算できます。
=WORKDAY.INTL(TODAY(), 5, "0010001", 祝日!A2:A20)
ファイルを開くたびにTODAY関数が更新されるので、日付を手入力する必要がありません。タスク管理シートの期限列などに設定しておくと便利ですよ。
全日稼働で祝日だけスキップする
週末の概念がない24時間営業の施設で、祝日だけを除外してN営業日後を求めたい場合です。
=WORKDAY.INTL(A2, 5, "0000000", 祝日!A2:A20)
「0000000」で毎日稼働を指定し、第4引数の祝日だけをスキップします。通常のWORKDAY関数では土日が必ずスキップされるので、この方法でないと実現できません。
よくあるエラーと対処法
#VALUE!が出るときの原因と修正
WORKDAY.INTL関数で#VALUE!が出る原因は主に3つです。
- 日付が「文字列」として入力されている
- 第3引数の文字列が7文字でない(例: “001001”は6文字でエラー)
- 第3引数の文字列に「0」「1」以外の文字が含まれている
日付の文字列問題は、DATE関数で日付を作り直すと解決します。
=WORKDAY.INTL(DATE(2025,4,1), 5, "0010001")
第3引数の文字列は、必ず7文字で「0」と「1」だけを使ってください。
#NUM!が出るときの原因と修正
第3引数に無効な数値を指定すると#NUM!エラーになります。
使える数値は「1〜7」と「11〜17」の14種類だけです。「8」「9」「10」などは無効なので注意しましょう。
=WORKDAY.INTL(A2, 5, 8)
この数式は#NUM!エラーになります。数値パターンに該当しない組み合わせは、7文字の文字列で指定してくださいね。
祝日が反映されないときの確認ポイント
祝日を指定したのにスキップされない場合は、次の3点を確認しましょう。
- 祝日リストの日付形式: 祝日が文字列になっていないか
- 引数の位置: 祝日リストを第3引数に入れていないか(第4引数が正しい位置です)
- 祝日が期間外: 指定した祝日が開始日〜N営業日後の日付の範囲外
特に注意したいのが「引数の位置」です。WORKDAY関数では祝日が第3引数ですが、WORKDAY.INTL関数では第4引数です。
シリアル値が表示されるときの対処
結果が「45753」のような数値で表示される場合は、エラーではありません。セルの表示形式を「日付」に変更すれば解決します。
TEXT関数でラップする方法もOKです。
=TEXT(WORKDAY.INTL(A2, 5, "0010001"), "yyyy/mm/dd")
WORKDAY.INTL関数と似た関数の違い・使い分け
WORKDAYファミリーと関連関数を表で比較します。
| 項目 | WORKDAY.INTL | WORKDAY | NETWORKDAYS.INTL | NETWORKDAYS |
|---|---|---|---|---|
| 用途 | 週末カスタムでN営業日後 | 土日固定でN営業日後 | 週末カスタムで稼働日数 | 土日固定で稼働日数 |
| 週末の定義 | 数値or文字列で自由に指定 | 土日固定 | 数値or文字列で自由に指定 | 土日固定 |
| 祝日除外 | あり(第4引数) | あり(第3引数) | あり(第4引数) | あり(第3引数) |
| 戻り値 | 日付(シリアル値) | 日付(シリアル値) | 日数(整数) | 日数(整数) |
WORKDAYとの使い分け
違いは「週末パターンを変えられるかどうか」の1点だけです。
- 土日休み → WORKDAY関数がシンプルでおすすめ
- 土日以外が休み → WORKDAY.INTL関数を使う
WORKDAY.INTL関数で第3引数を「1」にすれば、WORKDAY関数とまったく同じ結果になります。
NETWORKDAYS.INTLとの関係
NETWORKDAYS.INTL関数は、WORKDAY.INTL関数の「逆方向」です。
- WORKDAY.INTL: 日数 → 営業日付を返す
- NETWORKDAYS.INTL: 期間 → 営業日数を返す
たとえば「水曜・日曜休みでこの期間は何稼働日?」を求めるならNETWORKDAYS.INTLを使います。
=NETWORKDAYS.INTL(A2, B2, "0010001", 祝日!A2:A20)
第3引数の週末パターンはWORKDAY.INTL関数と共通です。同じ値を使えば計算結果が整合しますよ。
DAYSとの使い分け
DAYS関数は、週末も祝日も除外しないカレンダー日数を返します。
| やりたいこと | 使う関数 |
|---|---|
| 週末カスタムでN営業日後の日付 | WORKDAY.INTL関数 |
| 土日祝を除いたN営業日後の日付 | WORKDAY関数 |
| 週末カスタムで稼働日数 | NETWORKDAYS.INTL関数 |
| 土日祝を除いた稼働日数 | NETWORKDAYS関数 |
| カレンダー日数 | DAYS関数 |
まとめ
WORKDAY.INTL関数は、週末パターンをカスタムしてN営業日後の日付を求める関数です。
ポイントを整理します。
- 構文は
=WORKDAY.INTL(開始日, 日数, [週末], [祝日])の最大4引数 - 第3引数の数値(1〜7、11〜17)で週末パターンを選ぶ
- 数値にない組み合わせは7文字の文字列(”0010001″など)で指定する
- 祝日は第4引数(WORKDAY関数の第3引数とはずれるので注意)
- 結果がシリアル値で表示されたら、表示形式を「日付」に変更する
- 日数にマイナスを指定すれば営業日前も計算できる
- 土日休みならWORKDAY関数がシンプル
| やりたいこと | 使う関数 |
|---|---|
| 土日以外の休日パターンでN営業日後 | WORKDAY.INTL関数 |
| 土日祝を除いたN営業日後 | WORKDAY関数 |
| 週末カスタムで稼働日数 | NETWORKDAYS.INTL関数 |
| 土日祝を除いた稼働日数 | NETWORKDAYS関数 |
| 今日の日付を基準にしたい | TODAY関数と組み合わせ |
| カレンダー日数 | DAYS関数 |
まずは =WORKDAY.INTL(A2, 5, 11) で日曜だけ休みの5営業日後を計算してみてください。7文字の文字列を使えば、どんな休日パターンにも対応できますよ。
