「WORKDAY関数を使っているけど、うちは土曜が出勤日で日曜だけ休みなんだよな」――そんな悩みを解決してくれるのが WORKDAY.INTL関数 です。
標準のWORKDAY関数は「土曜・日曜が休日」という前提で動きますが、WORKDAY.INTLなら週の休日パターンを自分で指定できます。シフト制の職場や、海外拠点との連携など、柔軟な営業日計算が必要な場面にぴったりです。
この記事では、引数の意味から実務での活用例まで、ステップごとにわかりやすく解説します。
WORKDAY.INTL関数とは?
読み方と語源
「ワークデイ インターナショナル」と読みます。WORKDAY(営業日計算)に INTL(International=国際対応) が加わった関数で、国や業種によって異なる休日パターンに対応するために設計されました。
できること
開始日から 指定した稼働日数だけ前後の日付 を求めます。週末(非稼働日)の曜日パターンを自由に設定できる点が、通常のWORKDAY関数との最大の違いです。
- 土日以外の曜日を週末に設定できる
- 文字列コードで任意の曜日組み合わせを指定できる
- 祝日や特別休暇など、不定期の休日も除外できる
WORKDAY.INTL関数の書き方
基本構文
=WORKDAY.INTL( 開始日, 日数, [週末], [休日] )
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 開始日 | 必須 | 計算の起算日となる日付を指定します |
| 日数 | 必須 | 何稼働日前後の日付かを指定します。正の数で後、負の数で前 |
| 週末 | 任意 | 週末(非稼働日)とする曜日を番号または文字列で指定します(省略時は土日) |
| 休日 | 任意 | 週末以外に除外したい日付(祝日など)をセル範囲または配列で指定します |
「週末」引数の指定方法
番号で指定する方法
あらかじめ用意されている組み合わせ番号を使う方法です。
| 番号 | 非稼働日(週末)の曜日 |
|---|---|
| 1(省略時) | 土曜・日曜 |
| 2 | 日曜・月曜 |
| 3 | 月曜・火曜 |
| 4 | 火曜・水曜 |
| 5 | 水曜・木曜 |
| 6 | 木曜・金曜 |
| 7 | 金曜・土曜 |
| 11 | 日曜のみ |
| 12 | 月曜のみ |
| 13 | 火曜のみ |
| 14 | 水曜のみ |
| 15 | 木曜のみ |
| 16 | 金曜のみ |
| 17 | 土曜のみ |
文字列コードで指定する方法
番号の組み合わせにない休日パターンを使いたい場合は、7文字の文字列で指定できます。
文字列の構造:月火水木金土日の順番で、1(非稼働日)か 0(稼働日)を並べます。
"0000011" → 土曜と日曜が休み(通常の週末)
"1000001" → 月曜と日曜が休み
"0101000" → 火曜と木曜が休み
注意点:
- 必ず7文字で指定すること(6文字以下や8文字以上はエラー)
"1111111"のようにすべて非稼働日にするとエラー(#VALUE!)- 数値ではなく 文字列 として入力する(ダブルクォーテーションで囲む)
基本的な使い方
例1:30稼働日後の日付を求める(番号指定)
=WORKDAY.INTL("2024/4/1", 30, 1)
2024年4月1日から、土日を除いた30稼働日後の日付を返します。
例2:日曜・月曜が休みのパターンで計算する
=WORKDAY.INTL("2024/4/1", 20, 2)
番号「2」は日曜・月曜が週末です。コールセンターや小売業など、月曜が定休の職場に使えます。
例3:文字列コードで火・木を休みにする
=WORKDAY.INTL("2024/4/1", 15, "0101000")
火曜と木曜が非稼働日になります。
例4:セル参照を使ってデータを集約する
=WORKDAY.INTL(A2, B2, C2, D2:D20)
- A2:開始日
- B2:稼働日数
- C2:週末パターン番号
- D2:D20:祝日・特別休業日のリスト
実務では祝日を別シートにリスト化してセル範囲で参照する方法が管理しやすくおすすめです。
実務での活用例
活用例1:プロジェクトの納期計算
プロジェクト管理で「今日から20稼働日後の納期はいつ?」を自動計算したい場面です。
=WORKDAY.INTL(TODAY(), 20, 1, 祝日リスト)
祝日リストを別シートで管理しておけば、毎年更新するだけで全員が正確な納期を確認できます。スケジュール管理シートと組み合わせると、タスクの期日を一括で求めることもできます。
活用例2:シフト制職場の業務日計算
介護施設や飲食店など、土曜出勤・日曜休みのシフトに対応する場合。
=WORKDAY.INTL(開始日, 10, 11)
番号「11」は日曜のみ非稼働日です。日曜を除いた10業務日後の日付を簡単に求められます。
活用例3:海外拠点との納期調整
中東では金曜・土曜が休日の国があります(サウジアラビア・UAEなど)。
=WORKDAY.INTL(開始日, 5, 7)
番号「7」は金曜・土曜が週末です。現地の稼働日にあわせた納期計算ができるので、国際プロジェクトでも活躍します。
WORKDAY関数との違い・使い分け
| 比較項目 | WORKDAY | WORKDAY.INTL |
|---|---|---|
| 対応バージョン | Excel 2007以降 | Excel 2010以降 |
| 週末パターン | 土日固定 | 自由に指定可能 |
| 文字列コード指定 | 不可 | 可能 |
| 引数の数 | 3つ(開始日・日数・休日) | 4つ(週末が追加) |
| 使いやすさ | シンプル | 引数がやや多め |
使い分けの目安:
- 土日休みの一般的な職場 → WORKDAY(シンプルで十分)
- シフト制・業種特有の休日パターンがある → WORKDAY.INTL
NETWORKDAYS.INTL関数も同じ「INTL」系で、こちらは2つの日付の間の稼働日数を数えるときに使います。セットで覚えておくと便利です。
よくあるエラーと対処法
| エラー | 原因 | 対処法 |
|---|---|---|
#VALUE! | 文字列コードが7文字でない | コードの文字数を確認する |
#VALUE! | 文字列コードがすべて「1」になっている | 少なくとも1文字は「0」を含める |
#VALUE! | 開始日や休日に日付以外の値が入っている | セルの書式を「日付」に変更する |
#NUM! | 計算結果が日付の有効範囲外になっている | 日数が大きすぎないか確認する |
よくある間違い:週末を文字列コードで指定するとき、ダブルクォーテーションを忘れてしまうケースです。0101000 と入力するとExcelが数値として解釈してエラーになるため、必ず "0101000" と囲んで入力してください。
まとめ
WORKDAY.INTL関数のポイントをまとめます。
- 「週末」引数で土日以外の曜日を非稼働日に指定できる
- 番号指定(1〜17)と文字列コード(7文字の0と1)の2通りの指定方法がある
- 祝日リストをセル範囲で参照すれば、毎年の更新も楽になる
- 土日以外の週末パターンが不要なシンプルなケースはWORKDAY関数で十分
「週末」引数の指定さえ理解できれば、あとはWORKDAY関数と同じ感覚で使えます。まずは自分の職場の休日パターンに合った番号を確認するところから始めてみてください。
関連記事
営業日計算に関連する関数の記事もあわせてご覧ください。
