土日を除外した月末日関連のネタを何度かご紹介してきました。
EOMONTH関数とWEEKDAY関数を使って土日を除いた月末最終営業日を取得する方法、DATE関数・YEAR関数・MONTH関数を使って同様のことを行う方法、スケジュール表に月末最終営業日を表示する方法、土日を除外した月末最終営業日の前日を取得する方法です。
除外するのが土曜日・日曜日だけならこれまでご紹介した方法でいいわけですが、実務では祝日・祭日・振り替え休日・その他の休業日も除外したいという要望のほうが、むしろ多いんじゃないかと思います。
休日を除外した月末最終営業日を表示するには、WORKDAY関数を使うと便利です。
※「マスタ」シートのA2:A23セルに休日のリストを作成しておき、A1セルに日付を入力したときに、A6セルに月末最終営業日を表示する例 A6セルに
「=WORKDAY(DATE(YEAR(A1),MONTH(A1)+1,1),-1,マスタ!A2:A23)」
という数式を入力する
WORKDAY関数は、
第1引数に指定された日を基準にして、
第2引数に指定された前後の日付を返してくれます。
その際に、
第3引数に指定された日と、土曜日・日曜日を除外してくれます。
上記の
「=WORKDAY(DATE(YEAR(A1),MONTH(A1)+1,1),-1,マスタ!A2:A23)」
という数式は、
第1引数に「DATE(YEAR(A1),MONTH(A1)+1,1)」
第2引数に「-1」
第3引数に「マスタ!A2:A23」
を指定しています。
「DATE(YEAR(A1),MONTH(A1)+1,1)」は、
A1セルに指定された日の翌月1日を求める数式です。
第1引数に「DATE(YEAR(A1),MONTH(A1)+1,1)」を指定して、
第2引数に「-1」を指定しているので、
A1セルに指定された日の翌月1日の1日前 = A1セルに指定された日付の月の最終営業日が、返されるわけです。
その際に、
第3引数に指定された「マスタ!A2:A23」に入力されている日付と、土曜日・日曜日は除外されています。
▼サンプルファイル(003192.xls 56KByte)ダウンロード
サンプルファイルの「土日休日を除外した月末最終営業日」シートに上記の計算式を入力し、D1:D9セルにはA1セルに入力された日の、月末前後の日付が表示されるように設定してあります。A1セルの日付を変更したときにどのような日付がA6セルに表示されるかご確認ください。
土日休日を除外した月末最終営業日の前日を取得したいのであれば、
「=WORKDAY(DATE(YEAR(A1),MONTH(A1)+1,1),-1,マスタ!A2:A23)」
という数式の
第2引数を「-1」から「-2」にして
「=WORKDAY(DATE(YEAR(A1),MONTH(A1)+1,1),-2,マスタ!A2:A23)」
とすればOKです。
WORKDAY関数は、2003までのExcelでは分析ツールアドインに含まれる関数ですから、2003までのExcelをお使いの方で、#VALUE!エラーが表示された場合は、分析ツールアドインの組み込みを行ってください。
- Newer:Excel 2007で行の挿入は?
- Older:COUNTIF関数で「○○以上かつ××以下」の指定
Home » Excel(エクセル)の関数・数式の使い方 » 日付の処理・計算 » 土日と祝日・祭日・休日を除いた月末最終営業日を取得−WORKDAY関数