8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

毎月の最後の平日を求めるExcel関数

Last updated at Posted at 2022-01-05

きっかけ

もう何年も前の話です。
毎月末に提出する書類(エクセルファイル)の作成日記入欄に、下記の数式が書かれていました。
EOMONTH(B3,0)-MAX(WEEKDAY(EOMONTH(B3,0),2)-5,0)
当時の自分はExcelの関数についてほとんど知らなかったので、この数式が何を計算しているのか全く分かりませんでした。
そのとき、自分なりに調べて理解したことをまとめて記事にします。

3つの関数の意味

ひとまず、この数式に登場する3つの関数について調べました。

EOMONTH(開始日,月数)

開始日から数えて、月数分だけ前または後の月の最終日を求める関数です。
素直に日付を答えてくれるわけではなく、シリアル値という数値で返答してきます(Windows版Excelの場合は、1900年1月1日を1とし、そこに経過日数を足して、その日付のシリアル値としているそうです)。
上記の数式の場合、EOMONTH(B3,0)とのことなので、B3セルに記入された日付から0ヶ月後(つまりB3セルの日付と同じ月)の月末の日付が算出されます。
ちなみに、この書類ではB3セルにその月の月初日が記入されていました。

WEEKDAY(日付,週の基準)

指定した日付の曜日を求める関数です。
これも素直に月火水木金土日で答えてくれるわけではなく、「週の基準」で指定した数値によって答え方が変わります。
上記の数式の場合、WEEKDAY(EOMONTH(B3,0),2)とのことなので、「その月の最終日が何曜日なのかを、週の基準2に従って算出する」という内容になっています。
「週の基準2」は、「月曜日を1、火曜日を2、…、日曜日を7」と置き換える法則です。

MAX(数値1,数値2,…)

括弧の中で指定した数値のうち、最も大きい数値を求める関数です。
上記の数式の場合、MAX(WEEKDAY(EOMONTH(B3,0),2)-5,0)とのことなので、「WEEKDAY(EOMONTH(B3,0),2)-5と0を比較して、大きい方の数値を算出する」という内容になっています。
WEEKDAY(EOMONTH(B3,0),2)-5は、週の基準2に従って求めた曜日の数値から5を引いていますので、「月曜日が-4、火曜日が-3、…、日曜日が2」となります。
それらと0を比べて大きい方の数値を答えるのがMAX(WEEKDAY(EOMONTH(B3,0),2)-5,0)ですので、「月曜日から金曜日は0、土曜日は1、日曜日は2」と置き換えられています。

数式全体の意味

上記を踏まえて、最初の数式の全体を見てみます。
EOMONTH(B3,0)-MAX(WEEKDAY(EOMONTH(B3,0),2)-5,0)
数式の前半(EOMONTH(B3,0))は、単純にその月の最終日を求めています。
後半(MAX(WEEKDAY(EOMONTH(B3,0),2)-5,0))は、その月の最終日が平日なら0を、土曜日なら1を、日曜日なら2を算出します。
数式全体としては、その月の最終日から0(平日の場合)または1(土曜日の場合)または2(日曜日の場合)を引いているので、その月の最後の平日を求めていることになります。

こうして、この数式がその月の最後の平日を算出する関数であることを、当時の自分はやっとのことで突き止めたのでした。
ただし、この数式は祝日等を考慮していませんので、そこは注意が必要です。

最後に

最初に書いた通り、この数式は月末提出書類の作成日記入欄に書かれていました。
であれば、「これはその月の最終出勤日が出てくる数式なのかな?」などと想像できていれば、もっと早く疑問を解決できていたかもしれません。
その点も含めて、当時は知識や経験が足りませんでした。
反省し、精進します。

以上、ご覧いただきありがとうございました。

8
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?