- 投稿日:2026/01/07
この記事は約2分で読めます
要約
毎月の「勤務表づくり」がラクになる!
日付を打ち変えて、土日を塗って、曜日を確認して──
Excelが得意でも、地味に時間がかかる「月替わり作業」。
このシリーズでは、そんな**“勤務表あるある”の悩み**をひとつずつ取り上げて、
自動化・ラクにする工夫を紹介していきます。
◼️ 第1回のテーマは「カレンダーの自動生成!」
年月を入力するだけで、1日〜末日まで自動で並ぶ仕組みを作っていきます。
1.完成図
👇まずは土台となるシート。
これを下図のように、自動で月末が表示されるようにします。
2月(B1が月)が28日で終わってるのがわかるかと思います。
2.関数の説明
まず日付の行(B2~AF2)に入れる関数はこちら
=IF(COLUMN(A1)<=DAY(EOMONTH(DATE($A$1,$B$1,1),0)),COLUMN(A1),"")
ごちゃごちゃしてわかりにくいかと思いますが、ポイントだけ簡単に説明します。
COLUMN(A1)
👉 「A列は何番目の列か」 を返す関数。
A列だと「1」B列だと「2」になります。
EOMONTH(基準日, 月数)
👉 「基準日から、指定した月数だけ前後した“月末日”」を返す関数
例)
=EOMONTH("2026/1/1",0)
👉 結果
2026/1/31
先ほどの👇
=IF(COLUMN(A1)<=DAY(EOMONTH(DATE($A$1,$B$1,1),0)),COLUMN(A1),"")
これを読み解くと👇
=IF( 今の列番号(1,2,3…)が その月の最終日以内なら, その番号を表示, それ以外は空白)
こんな感じになります。
3.入力方法
=IF(COLUMN(A1)<=DAY(EOMONTH(DATE($A$1,$B$1,1),0)),COLUMN(A1),"")
👆式を下図のようにB2に入力して横に引っ張ってあげます。

次にB2(月)2月にしてあげると
👆こんな感じで月末がうまく処理できたかと思います。
◼️ まとめ
いくつか聞き慣れない関数を使用しましたが、もちろん全て理解できなくでも構いません。
今回紹介した式はコピぺで使えるので、アレンジして活用してみてください
◼️ 次回
次回は「曜日」の月末処理も自動で変わるようにしますのでお楽しみに!
