最近見た
ページ
30
WORKDAY関数を使って、〇日営業日を求めよう
- 365
- web
- 2021
- 2019
- 2016
- 2013
- Web App
- 2011
- 2010
- 2007
- Starter

土日・祝日など休業日を除いた〇日前や〇日後の日付を求めたいことはありませんか?WORKDAY関数を使って簡単に求める方法を解説いたします。
WORKDAY関数で土日・祝日を除いた〇日前、〇日後の日付を求めよう!
WORKDAY(ワークデイ)関数は土日・祝日などの休業日を除いた稼働日を求めることができる関数です。 基準の日付から指定した稼動日数だけ前または後の日付を返します。
ここでは、WORKDAY関数の基本的な書式と機能について紹介します。
WORKDAY関数の書式
WORKDAY関数は次のように入力します。
=WORKDAY(開始日, 日数, [祝日])
WORKDAY関数は開始日から、指定した土日祝日を除く日数だけ前または後の日付を求めることができます。
土日だけ除くこともできますが、ここではOR関数でご紹介した祝日の一覧を使用して、土日祝日を除いて実際に求めてみたいと思います。
今回の例では、あらかじめB列に入力された基準となる日付から、A列に2営業日前、C列に3営業日後を求めたいと思います。
![セルA4をアクティブにし、[数式]タブの[関数の挿入]をクリックしている画面イメージ](images/case30_01.png)
12営業日前を求めたいセルA4をアクティブにし、[数式]タブの[関数の挿入]をクリックします。
![[関数の分類]で「日付/時刻」を選択し、[関数名]で「WORKDAY」を選択して、[OK]ボタンをクリックしている画面イメージ](images/case30_02.png)
2[関数の分類]で「日付/時刻」を選択し、[関数名]で「WORKDAY」を選択して、[OK]ボタンをクリックします。
![[引数の[開始日]に「B4」、[日数]に「ー2」、[祭日]に「syukujitsu!$A$2:$A$1014」を入力して、[OK]ボタンをクリックしている画面イメージ](images/case30_03.png)
3[引数の[開始日]に「B4」、[日数]に「ー2」、[祭日]に「syukujitsu!$A$2:$A$1014」を入力して、[OK]ボタンをクリックします。 ※開始日より2営業日前を求めたいのでマイナス2を入れてます。

4A4に2営業日前にあたる日付が表示されたと思います。セルA4のWORKDAY関数の式をコピーし19行目まで貼り付けます。
![引数の[開始日]に「B4」、[日数]に「3」、[祭日]に「syukujitsu!$A$2:$A$1014」を入力して、[OK]ボタンをクリックしている画面イメージ](images/case30_05.png)
5セルC4にセルA4と同じようにWORKDAY関数を入力します。
※C列は3営業日後を求めたいので、[日数]はプラスの3とします。
引数の[開始日]に「B4」、[日数]に「3」、[祭日]に「syukujitsu!$A$2:$A$1014」を入力して、[OK]ボタンをクリックします。

6C4に3営業日前にあたる日付が表示されたと思います。セルC4のWORKDAY関数の式をコピーし19行目まで貼り付けます。
A列にB列から2営業日前、C列にB列から3営業日後の日付が表示されたと思います。
ステップアップ:特定の日が土日だったら前の日を求めたい
銀行の引き落とし日、給料日、毎月 日にちが決まっているものでも、土日や祝日だった場合、前の営業日や後の営業日にずれることがありますよね。
ここまでご紹介した方法ですと、意図した結果が得られないと思います。毎月特定日、その日が土日や祝日だった場合、前の営業日や後の営業日を求める方法を解説いたします。
特定日が土日や祝日だった場合、前日を求める式の例:
=WORKDAY(開始日+1, -1, [祝日])
特定日が土日や祝日だった場合、後日を求める式の例:
=WORKDAY(開始日-1, 1, [祝日])
今回の例では、毎月10日が休日だった場合、前の平日と後の平日をそれぞれ求めてみたいと思います。
まずA列に基準となる毎月10日を12か月分入力したいと思います。

1A列日基準となる毎月10日を入力します。
セルA4には「2023/4/10」と入力します。
![セルA5には「=EDATE(A4,1)]と入力している画面イメージ](images/case30_08.png)
2セルA5には「=EDATE(A4,1)]と入力します。

3セルA5の式をコピーし、セルA15まで貼り付けます。
12か月分の10日の一覧ができたと思います。
ここでは分かりやすいように日付の後に曜日を表示し、色分けしておきます。
以下のページを参考に設定してみてください。
次にB列に10日が土日祝日だったら、前の平日を求めたいと思います。
![[関数の分類]で「日付/時刻」を選択し、[関数名]で「WORKDAY」を選択して、[OK]ボタンをクリックしている画面イメージ](images/case30_02.png)
4セルB4をアクティブにし、[数式]タブの[関数の挿入]をクリックします。
[関数の分類]で「日付/時刻」を選択し、[関数名]で「WORKDAY」を選択して、[OK]ボタンをクリックします。

5 引数の[開始日]に「A4+1」、[日数]に「-1」、[祭日]に「syukujitsu!$A$2:$A$1014」と入力します。
(補足)A4+1で11日にし、1営業日前を算出したいのでマイナス1と入力します。そうすることで、10日が平日であれば、常に10日、土日祝日であればその前の平日が返されます。
同じようにC列には10日が土日祝日だったら、後の平日を求めたいと思います。

6 引数の[開始日]に「A4-1」、[日数]に「1」、[祭日]に「syukujitsu!$A$2:$A$1014」と入力します。
(補足)A4-1で9日にし、1営業日後を算出したいのでプラス1と入力します。そうすることで、10日が平日であれば、常に10日、土日祝日であればその後の平日が返されます。

7B4とC4の数式をコピーし、15行目まで貼り付けます。
10日が土日祝日の場合、前の平日もしくは後の平日になっていると思います。
ちなみに常に当月の10日を表示したい場合は、Date関数とToday関数を使います。
10日が土日祝日だったら、前の平日を求める場合

8 引数の[開始日]に「DATE(Year(Today()),Month(Today()),11)」、[日数]に「-1」、[祭日]に「syukujitsu!$A$2:$A$1014」と入力します。
10日が土日祝日だったら、後の平日を求める場合

9 引数の[開始日]に「DATE(Year(Today()),Month(Today()),9) 」、[日数]に「1」、[祭日]に「syukujitsu!$A$2:$A$1014」と入力します。

DATE関数で日付を表示しよう!
エクセルで年月日が別々のセルに入力されている値を、日付として一つのセルに表示させることができます。

EDATE関数やEOMONTH関数で支払日や満期日の日付を求めよう!
YEAR関数で日付に対応する年を、MONTH関数で日付に対応する月を求める方法も解説してます。

TODAY関数/NOW関数で日付や時刻を自動入力しよう
エクセルでファイルを開いた時の日時を自動取得して表示させる「TODAY関数」や 「NOW関数」を解説いたします。
更にIF関数を組み合わせると、常に次の10日を求めることができます。
10日が土日祝日だったら、前の平日を求める場合

8引数に次のように入力します。
引数 | |
---|---|
[開始日] | IF(DATE(YEAR(TODAY()),MONTH(TODAY()),10)>=TODAY(),DATE(YEAR(TODAY()),MONTH(TODAY()),11),DATE(YEAR(TODAY()),MONTH(TODAY())+1,11)) |
[日数] | -1 |
[祭日] | syukujitsu!$A$2:$A$1014 |
10日が土日祝日だったら、後の平日を求める場合

9引数に次のように入力します。
引数 | |
---|---|
[開始日] | IF(DATE(YEAR(TODAY()),MONTH(TODAY()),10)>=TODAY(),DATE(YEAR(TODAY()),MONTH(TODAY()),9),DATE(YEAR(TODAY()),MONTH(TODAY())+1,9))) |
[日数] | 1 |
[祭日] | syukujitsu!$A$2:$A$1014 |
ステップアップ2:土日以外を週末として求めたい
土日のように別の曜日を週末として求めたい場合はWORKDAY.INTL(ワークデイ・インターナショナル)関数を使います。
WORKDAY.INTL 関数は次のように入力します。
=WORKDAY.INTL(開始日, 日数, [週末], [休日])
週末がどの曜日で何日間あるかを示すパラメーターを引数の[週末]に指定します。 指定したパラメーターに基づいて、開始日から起算して指定した稼働日数だけ前または後の日付を返します。
週末番号 | 週末の曜日 |
---|---|
1 または省略 | 土曜日と日曜日 |
2 | 日曜日と月曜日 |
4 | 火曜日と水曜日 |
5 | 水曜日と木曜日 |
6 | 木曜日と金曜日 |
7 | 金曜日と土曜日 |
11 | 日曜日のみ |
12 | 月曜日のみ |
13 | 火曜日のみ |
14 | 水曜日のみ |
15 | 木曜日のみ |
16 | 金曜日のみ |
17 | 土曜日のみ |
引数の[週末]以外はWORKDAY関数と同じように入力してみてください。
この記事をシェアする

人気記事
エクセル関数
1. 数学・三角関数
2. 論理関数
3. データベース関数
4. 検索・行列関数
5. 文字列関数
- ASC関数
- CONCATENATE関数
- CONCAT関数
- JIS関数
- LEFT / RIGHT関数
- LOWER関数
- MID関数
- PROPER関数
- PHONETIC関数
- REPT関数
- SUBSTITUTE関数
- TEXT関数
- TEXTJOIN関数
- TRIM関数
- UPPER関数
6. 統計関数
7. 日付と時刻
- DATE関数
- DATEDIF関数
- DATESTRING関数
- DATEVALUE関数
- EDATE関数
- EOMONTH関数
- HOUR / MINUTE関数
- MONTH関数
- TODAY関数
- NOW関数
- WEEKDAY関数
- WORKDAY関数
- WORKDAY.INTL 関数
- YEAR 関数
8. 情報
9. 財務
