概要
「月初の営業日(平日)」を求めたいときは、WORKDAY関数とEOMONTH関数を組み合わせます。月初は EOMONTH(日付,-1)+1 で取得できますが、その日が土日や祝日の場合は営業日ではありません。そこで WORKDAY(月初,-1)+1 を使うと、月初が休日でも自動的に次の営業日を返してくれる仕組みになります。
基本の使い方
月初の営業日を求める基本形
=WORKDAY(EOMONTH(A2,-1)+1,-1)+1
EOMONTH(A2,-1)+1→ A2の日付が属する月の「月初日」を取得WORKDAY(月初,-1)→ 月初から1営業日前(=前月の最終営業日)を返す+1→ そこから1日進めることで「月初営業日」を返す
具体例
今日の属する月の月初営業日
=WORKDAY(EOMONTH(TODAY(),-1)+1,-1)+1
今日が属する月の「最初の営業日」を返します。
指定日A2の属する月の月初営業日
=WORKDAY(EOMONTH(A2,-1)+1,-1)+1
A2が2025/12/17なら、2025年12月の最初の営業日を返します。
祝日を考慮した月初営業日
=WORKDAY(EOMONTH(A2,-1)+1,-1,$H$2:$H$20)+1
H2:H20に祝日一覧を入力しておけば、祝日も除外した「月初営業日」が求められます。
応用テンプレート
翌月の月初営業日
=WORKDAY(EOMONTH(A2,0)+1,-1)+1
A2の属する月の翌月の「最初の営業日」を返します。
前月の月初営業日
=WORKDAY(EOMONTH(A2,-2)+1,-1)+1
月初営業日を「yyyy/mm/dd」形式で表示
=TEXT(WORKDAY(EOMONTH(A2,-1)+1,-1)+1,"yyyy/mm/dd")
月初営業日を「曜日付き」で表示
=TEXT(WORKDAY(EOMONTH(A2,-1)+1,-1)+1,"yyyy/mm/dd (ddd)")
よくあるつまずきと対策
月初が土日の場合
月初が土日なら、WORKDAYが自動的に次の平日に調整してくれます。
祝日を除外したい場合
祝日一覧を第3引数に指定してください。範囲は絶対参照にすると便利です。
月初営業日が「月初日」にならないケース
月初日が休日や祝日の場合は、翌営業日が返るのが正しい動作です。
WORKDAY.INTLで柔軟な週末設定
土日以外を休日にしたい場合は WORKDAY.INTL を使い、週末パターンを指定します。
例題
問題1: 今日の属する月の「月初営業日」をB2に表示してください。
=WORKDAY(EOMONTH(TODAY(),-1)+1,-1)+1
問題2: A2の日付が属する月の「月初営業日」をC2に表示してください。
=WORKDAY(EOMONTH(A2,-1)+1,-1)+1
問題3: A2の日付が属する月の「月初営業日」を祝日一覧H2:H20を除外してD2に表示してください。
=WORKDAY(EOMONTH(A2,-1)+1,-1,$H$2:$H$20)+1
問題4: A2の日付が属する「翌月の月初営業日」をE2に表示してください。
=WORKDAY(EOMONTH(A2,0)+1,-1)+1
問題5: A2の日付が属する月の「月初営業日」をF2に「yyyy/mm/dd (ddd)」形式で表示してください。
=TEXT(WORKDAY(EOMONTH(A2,-1)+1,-1)+1,"yyyy/mm/dd (ddd)")
まとめ
月初営業日は EOMONTHで月初日を取得 → WORKDAYで営業日に補正 → +1で調整 という流れで求めます。祝日を考慮するなら第3引数に祝日範囲を渡し、翌月・前月もEOMONTHの引数を変えるだけ。表示形式をTEXTで整えれば帳票やレポートに即利用可能です。これで「月初営業日」の計算はシンプルかつ確実に行えます。
