Excelで特定の曜日を除いて日数を足すなら =WORKDAY.INTL(開始日, 日数, 週末指定, 祝日) です。週末指定に「0010000」のような7文字(月曜始まり・1が休み)を渡せば、水曜定休でも週休3日でも自由に除外できます。土日だけなら第3引数は省略してもかまいません。
- WORKDAY.INTL の基本構文
- まず動かしてみる:水曜定休の店で「5営業日後」
- 週末指定は「番号」と「文字列」の2通り
- 実例2:土日と祝日を両方除いて納期を出す
- 実例3:定休日をセルで切り替える
- マイナスを使えば「◯営業日前」も出せる
- つまずきやすい3つのポイント
- 日数を「数える」ならNETWORKDAYS.INTL
- まとめ
- 関連記事
- あわせてチェック
「5営業日後に納品」「定休日を除いて3日後に連絡」——こうした日付は手で数えると必ずどこかでズレます。カレンダーを指でたどって数えた納期が、後から祝日で1日足りなかった、という経験は多くの人にあるはずです。WORKDAY.INTL を覚えると、この手の計算がすべて1つの数式で片付きます。
▲ Date and Time サンプル
WORKDAY.INTL の基本構文
=WORKDAY.INTL(開始日, 日数, [週末], [祭日])
| 引数 | 内容 |
|---|---|
| 開始日 | 起算日。この日は日数に含まれません |
| 日数 | 加算する営業日数。マイナスで過去へ逆算 |
| 週末 | 除外したい曜日(番号または7文字の文字列)。省略時は土日 |
| 祭日 | 追加で除外する日付のリスト(祝日・会社休業日など) |
Excel 2010 以降で使えます。Googleスプレッドシートにも同名の関数があり、書き方は同じです。
WORKDAY(無印)との違い
似た名前の WORKDAY もありますが、こちらは休みが土日で固定され、変更できません。休みが土日以外なら .INTL 一択、と覚えておけば迷いません。逆に土日休みしか扱わないなら、無印のほうが引数が少なくて楽です。
まず動かしてみる:水曜定休の店で「5営業日後」
A2に 2026/8/27(木)が入っているとします。
=WORKDAY.INTL(A2, 5, "0010000")
結果は 2026/9/1(火)。8/28金→8/29土→8/30日→8/31月→9/1火と数え、水曜だけを飛ばしています。土日も営業する店なので、土日はきちんと1日として数えられている点に注目してください。
この "0010000" が週末指定です。ここを書き換えるだけで、あらゆる休み方に対応できます。
週末指定は「番号」と「文字列」の2通り
定番パターンは番号で指定
よくある休みの組み合わせは、番号1つで指定できます。
| 番号 | 休みの曜日 | 番号 | 休みの曜日 |
|---|---|---|---|
| 1(省略時) | 土・日 | 11 | 日のみ |
| 2 | 日・月 | 12 | 月のみ |
| 3 | 月・火 | 13 | 火のみ |
| 4 | 火・水 | 14 | 水のみ |
| 5 | 水・木 | 15 | 木のみ |
| 6 | 木・金 | 16 | 金のみ |
| 7 | 金・土 | 17 | 土のみ |
番号で指定できるのは「連続する2日」か「1日だけ」のパターンのみです。ここに当てはまらない休み方は、次の文字列指定を使います。
自由な組み合わせは7文字の文字列で
"0010000" のように、月曜始まりの7文字で指定します。1が休み、0が営業日です。
| 休みの形 | 週末指定 |
|---|---|
| 土日休み | "0000011" |
| 日曜のみ休み | "0000001" |
| 水曜定休 | "0010000" |
| 水曜+日曜休み | "0010001" |
| 週休3日(水・土・日) | "0010011" |
| 休みなし(年中無休) | "0000000" |
文字列はダブルクォートで囲みます。7文字すべてを1にすると営業日が存在しなくなり、#VALUE! エラーになります。文字数が7文字ちょうどでない場合や、0と1以外の文字が混ざった場合も同じく #VALUE! です。
実例2:土日と祝日を両方除いて納期を出す
祝日はどこかのセルにリスト化しておきます。ここでは D2:D20 に祝日を入れたとします。
=WORKDAY.INTL(A2, 15, 1, $D$2:$D$20)
A2が 2026/9/1 なら結果は 2026/9/25。祝日リストを渡さないと 9/22 になるので、9月の連休3日分がきちんと効いていることが分かります。
祝日リストは数式をコピーしてもずれないよう $ で絶対参照にするか、テーブル化して 祝日[日付] のように名前で参照するのが安全です。
実例3:定休日をセルで切り替える
店舗や部署ごとに定休日が違う場合、数式に "0010000" を直書きすると全部書き換える羽目になります。週末指定はセル参照でも渡せるので、B1に定休日パターンを入れておきましょう。
=WORKDAY.INTL(A2, 5, $B$1, $D$2:$D$20)
B1を "0010000"(水曜定休)から "0000011"(土日休み)に変えるだけで、シート全体の計算が切り替わります。店舗別の一覧表なら、行ごとに定休日の列を持たせて $B2 のように列だけ固定する形が便利です。
マイナスを使えば「◯営業日前」も出せる
日数にマイナスを入れると過去方向に数えます。締切から逆算するときに便利です。
=WORKDAY.INTL(納品日, -3, 1, $D$2:$D$20)
「納品の3営業日前までに原稿を上げる」といった逆算スケジュールが、そのまま数式になります。
つまずきやすい3つのポイント
結果が「46266」のような数字になる
日付シリアル値がそのまま表示されている状態です(46266は2026/9/1にあたります)。セルを選んで「ホーム」→表示形式を「短い日付形式」に変えれば直ります。数式が間違っているわけではありません。
文字列指定は日曜始まりではない
WEEKDAY関数などの感覚で日曜始まりだと思い込むと、休みが1日ずれます。必ず月曜始まり(月火水木金土日)です。ここが最も多いミスです。
「日数0」では休日を営業日に丸められない
=WORKDAY.INTL(A2, 0, 1) は、A2が日曜でも日曜のまま返します。開始日が休日だったら翌営業日にしたい、という場合はこう書きます。
=WORKDAY.INTL(A2-1, 1, 1, $D$2:$D$20)
1日前から1営業日進めることで、A2が営業日ならA2のまま、休日なら次の営業日に丸まります。受注日を営業日に揃えたいときの定番テクニックです。
日数を「数える」ならNETWORKDAYS.INTL
逆に、2つの日付の間に営業日が何日あるかを数えたいときは NETWORKDAYS.INTL を使います。引数の考え方はほぼ同じです。
=NETWORKDAYS.INTL(開始日, 終了日, "0010000", $D$2:$D$20)
こちらは開始日と終了日の両方を含めてカウントします。WORKDAY.INTL が開始日を含まないのと逆なので、セットで覚えておくと混乱しません。
まとめ
- 曜日を除いて日数を足すのは
WORKDAY.INTL(無印WORKDAYは土日固定) - 土日だけなら第3引数は省略、それ以外は番号か7文字の文字列
- 文字列は月曜始まり・1が休み。7文字以外や0/1以外の文字は #VALUE!
- 祝日は第4引数にリストで渡す(絶対参照推奨)
- 週末指定はセル参照にすると店舗別・部署別の切り替えが一発
- 開始日は含まれない。休日を営業日に丸めるなら「-1して+1営業日」
定休日が特殊な業種ほど効果が大きい関数です。祝日リストを一度作ってしまえば、納期表もシフト表も自動で埋まるようになります。
関連記事
- Excelで「5営業日後」を出す方法|WORKDAY関数で土日祝スキップ
- Excel×Claude×Power Automateで日次レポートを全自動化|5アクションで組む手順とハマりどころ5つ
- Excel LAMBDA・LET関数の作り方|Claudeに設計を頼めば自作関数はすぐ完成する
- Excelのセルに =CLAUDE_ASK と書くだけ|xlwingsでAIを表計算に組み込む
- Excelデータを貼るだけ。Claudeに集計・異常値検出・報告書作成まで任せる方法
- Excelで日付に日数を足す方法|+7・EDATE・WORKDAYの使い分け早見表