Excelで営業日を計算する方法 [完全版]
「毎月1日から10営業日後の日付リストを作りたい」「25日の4営業日前の締め日を計算したい」。
ここでは実践的なシナリオとともに、Excel関数の使い方を解説します。また、すぐに使える祝日リストも提供します。
まずは準備: 祝日リストを入手
以下のボタンを押してリストをコピーし、Excelの新しいシート(例:「祝日」シート)の A1セル に貼り付けてください。
| 日付 | 祝日名 |
|---|---|
| 2026-01-01 | 元日 |
| 2026-01-12 | 成人の日 |
| 2026-02-11 | 建国記念の日 |
| 2026-02-23 | 天皇誕生日 |
| 2026-03-20 | 春分の日 |
| 2026-04-29 | 昭和の日 |
| 2026-05-03 | 憲法記念日 |
| 2026-05-04 | みどりの日 |
| 2026-05-05 | こどもの日 |
| 2026-05-06 | 振替休日 (憲法記念日) |
| 2026-07-20 | 海の日 |
| 2026-08-11 | 山の日 |
| 2026-09-21 | 敬老の日 |
| 2026-09-22 | 国民の休日 |
| 2026-09-23 | 秋分の日 |
| 2026-10-12 | スポーツの日 |
| 2026-11-03 | 文化の日 |
| 2026-11-23 | 勤労感謝の日 |
| 2027-01-01 | 元日 |
| 2027-01-11 | 成人の日 |
| 2027-02-11 | 建国記念の日 |
| 2027-02-23 | 天皇誕生日 |
| 2027-03-21 | 春分の日 |
| 2027-03-22 | 振替休日 (春分の日) |
| 2027-04-29 | 昭和の日 |
| 2027-05-03 | 憲法記念日 |
| 2027-05-04 | みどりの日 |
| 2027-05-05 | こどもの日 |
| 2027-07-19 | 海の日 |
| 2027-08-11 | 山の日 |
| 2027-09-20 | 敬老の日 |
| 2027-09-23 | 秋分の日 |
| 2027-10-11 | スポーツの日 |
| 2027-11-03 | 文化の日 |
| 2027-11-23 | 勤労感謝の日 |
※ 2026年~2027年のデータを含んでいます。
1. 基本計算: N営業日後を求める
祝日シートのA列(A2:A50)に日付が入っている場合:
=WORKDAY("2026/1/1", 5, 祝日!$A$2:$A$50)
2. 実践: 毎月のスケジュールを自動生成
① 毎月1日からの「第10営業日」をリストにする
お給料日や支払日など、「月の初めから数えて〇日目」を計算します。
- A列に「2026/1/1」「2026/2/1」...と毎月1日の日付を作ります。
- B列に以下の数式を入れます。
=WORKDAY(A1-1, 10, 祝日!$A$2:$A$50)
ポイント: A1-1 (前月末) を起点にして 10 日進めることで、「1日から数えて10日目」が正しく計算されます。
② 毎月25日からの「4営業日前」を計算する(逆算)
給与締め日など、「決まった日から遡って〇日」を計算します。
- A列に「2026/1/25」「2026/2/25」...と基準日を作ります。
- B列に以下の数式を入れます。
=WORKDAY(A1, -4, 祝日!$A$2:$A$50)
ポイント: 日数にマイナス -4 を指定すると、過去に遡って営業日を計算します。
3. 応用: 水曜日定休の場合 (WORKDAY.INTL)
美容室や不動産業など、土日以外が休みの場合は WORKDAY.INTL を使います。
第3引数に "0010000" のような7桁の数字(文字列)を指定します。
月~日を表し、1が休み、0が営業日です。
- "0000011" : 土日休み (デフォルト)
- "0010000" : 水曜のみ休み
- "1000001" : 日曜と月曜休み
やっぱりExcel管理は大変...
上記のリストをコピーしても、来年になればまた新しいリストを探して貼り付け直しになります。
さらに「第3水曜日だけ休み」といった複雑なルールは、Excel関数では非常に困難です。
APIなら、すべて自動化できます
ユーザー登録するだけで、最新の祝日データに対応した計算APIが利用可能です。
システムやプログラムに組み込んで、メンテナンスフリーな環境を手に入れましょう。
※ 登録は30秒で完了します。クレジットカードは不要です。
4. APIを使った自動化の実例
上記で登録したAPIを使って、ExcelやGoogleスプレッドシートから直接計算する方法です。
A. Excel (Office 365 / 2013以降)
WEBSERVICE 関数を使うと、APIの結果を直接セルに表示できます。
末尾に &format=text を付けることで、日付だけが返ってくるので面倒な設定は不要です。
💡 APIトークンについて:
- APIトークンあり(推奨): 無料プランで1日5回、有料プランで100回まで利用可能
- APIトークンなし: IPアドレスごとに1日10回まで利用可能
※ APIトークンはユーザー登録後、ダッシュボードで確認できます
APIトークンを使用する場合(推奨):
APIトークンなしで試す場合:
注意: Excelで初めてWEBSERVICE関数を使う場合、「このコンテンツの有効化」というセキュリティ警告が出ることがあります。その場合は「有効化」をクリックしてください。
B. Google スプレッドシート
Googleスプレッドシートでも、GAS (Google Apps Script) を使えばカスタム関数として利用できます。
function CALC_BIZ_DAY(date, days, apiToken = "") {
// format=text を指定してテキストで取得
let url = `https://営業日.com/api/v1/business-days/calculate?date=${date}&add_days=${days}&format=text`;
// APIトークンがある場合は追加
if (apiToken !== "") {
url += `&api_token=${apiToken}`;
}
const response = UrlFetchApp.fetch(url);
return response.getContentText();
}
これをスクリプトエディタに貼り付ければ、セルの中で以下のように使えます:
- APIトークンなし:
=CALC_BIZ_DAY("2026-01-01", 5) - APIトークンあり:
=CALC_BIZ_DAY("2026-01-01", 5, "あなたのAPIトークン")
5. もっと便利に: その他のAPI活用例
「今日が月初から何営業日目か」を自動取得するAPIも用意しています。
月初からの営業日数を取得
結果例: {"date":"2026-02-01","count":0,"type":"month_start"}
※ JSON形式で返るため、値を取り出すにはWEBSERVICE関数の結果をさらに加工する必要がありますが、システム連携には便利です。
6. 上級編: Excelマクロ(VBA)でオリジナル関数を作る
いちいち長いURLを入力するのが面倒な場合、VBAでオリジナルの関数を作ることが可能です。
これにより、誰でも簡単に =GetBizDate(基準日, 5) のように使えるようになります。
設定手順
- Excelを開き、Alt + F11 を押してVBAエディタを開きます。
- メニューの「挿入」→「標準モジュール」を選択します。
- 以下のコードをコピーして貼り付けます。
Function GetBizDate(BaseDate As Date, AddDays As Integer, Optional ApiToken As String = "") As String
' 営業日APIを呼び出す関数
Dim url As String
Dim http As Object
' API URLの組み立て
url = "https://営業日.com/api/v1/business-days/calculate?format=text&date=" & Format(BaseDate, "yyyy-mm-dd") & "&add_days=" & AddDays
' APIトークンが指定されている場合は追加
If ApiToken <> "" Then
url = url & "&api_token=" & ApiToken
End If
' HTTPリクエストの送信
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "GET", url, False
http.Send
' 結果を返す
If http.Status = 200 Then
GetBizDate = http.responseText
Else
GetBizDate = "Error"
End If
End Function
これで、セルに以下のように入力するだけで計算できるようになります:
- APIトークンなし:
=GetBizDate(A1, 5) - APIトークンあり:
=GetBizDate(A1, 5, "あなたのAPIトークン")
APIトークンを使用することで、1日あたりの利用回数制限が緩和されます(無料プラン: 5回、有料プラン: 100回)
よくある質問
Q. WORKDAY関数で#VALUE!エラーが出ます
開始日や祝日リストのセルが日付形式でない場合に発生します。セルの書式設定を「日付」に変更してください。また、祝日リストの範囲指定が正しいか確認してください。
Q. WEBSERVICE関数でHTML(タグ)が返ってきます
URLの末尾に &format=text を追加してください。これにより日付のみがテキスト形式で返されます。
Q. 祝日リストは毎年更新が必要ですか?
Excel関数を使う場合は毎年更新が必要です。当サイトのAPIを使えば、祝日データは自動的に最新に保たれるため、更新作業は不要です。
Q. 銀行カレンダーで計算したい場合は?
APIのパラメータに &calendar_type=bank を追加すると、年末年始(12/31〜1/3)も休業日として計算されます。