【Excel】月初・月末から日付一覧を作る方法|DATEとEOMONTHで月末後を空欄に

【Excel】月初・月末から日付一覧を作る方法|DATEとEOMONTHで月末後を空欄に
🛡️ 超解決

月が変わるたびにカレンダーの最終日を手で消しているなら、月初をDATE関数、月末をEOMONTH関数で求めると管理しやすくなります。28日、29日、30日、31日の違いは、指定した年月から計算できます。

ここでは年と月を入力し、1列にその月の日付を並べる予定表を作ります。31日分の場所を用意し、月末を過ぎる部分は空欄にします。日付を変えても手入力した予定が自動で付け替わるわけではないため、翌月用に切り替える前の保存方法も確認します。

ADVERTISEMENT

年と月を別のセルに入力する

空のシートでA1に年の「2026」、B1に月の「2」を数値で入力します。A2、B2には説明用に「年」「月」と書いておくと、入力欄を見分けられます。C1を月初、D1を月末の計算欄にし、C2とD2へそれぞれの見出しを付けます。日付一覧はA4から始めます。

年は4桁、月は1~12の整数にそろえます。A1へ「2026年」、B1へ「2月」という文字を直接入れる例ではありません。数字に年・月を付けて表示したい場合は表示形式を使い、数式が参照する入力値は数値にしておきます。

DATEは月の13を翌年1月として扱うなど、範囲を外れた値も日付へ繰り越して計算します。入力ミスを自動で拒否する関数ではないため、B1へ13を入れてエラーにならなくても正しいとは限りません。[データの入力規則]で整数の1~12に制限しておくと、通常の手入力時の間違いを減らせます。

複数人で使う場合は、年・月の入力欄にだけ色を付け、C1・D1を計算欄と分かるようにします。数式が消されたか調べるときは、結果の見た目だけでなく数式バーも確認してください。

※ お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

DATEで月初、EOMONTHで月末を求める

C1には=DATE(A1,B1,1)を入力します。第3引数の1が「1日」を表すため、2026年2月なら2026/2/1です。D1には=EOMONTH(C1,0)を入力します。第2引数が0なので、C1と同じ月の最終日である2026/2/28になります。

EOMONTHの第2引数を1にすると翌月末、-1にすると前月末になります。今回の日付一覧では、対象月の末日を使うので0のままにします。式を別の表からコピーした場合、この数字が1や-1になっていないか確認してください。

A1の年 B1の月 C1の月初 D1の月末
2026 2 2026/2/1 2026/2/28
2024 2 2024/2/1 2024/2/29
2026 4 2026/4/1 2026/4/30
2026 12 2026/12/1 2026/12/31

結果が大きな整数で表示された場合は、C1:D1の表示形式を日付にします。日付の内部値を文字列へ変換する必要はありません。TEXT関数で見た目だけを整えるより、日付の値を保って表示形式を変えるほうが、後の大小比較や曜日判定に使いやすくなります。

31日分の欄を作り、月末の次から空欄にする

A4へ=$C$1を入力します。続いてA5へ次の式を入れ、A34までコピーしてください。A4が1日、A34が31日目に当たるため、この範囲でどの月も収まります。

=IF(A4="","",IF(A4<$D$1,A4+1,""))

この式は、上のセルが空欄なら空欄を続け、日付が月末より前なら1日足し、月末に達していたら空欄にします。最初の空欄判定を省くと、いったん空欄にした次の行で意図しない値が出る原因になります。D1は常に月末を指すように絶対参照にし、A4はコピー先でA5、A6と変わる相対参照にします。

2026年2月ではA31が2月28日、A32:A34が空欄です。2024年2月ではA31が2月28日、A32が2月29日、A33:A34が空欄になります。月初がA4なので、ワークシートの行番号と日付の数字は3つずれます。「29日だから29行目」と判断せず、この対応で確認します。

式を入力した空欄は、何も入っていないセルとは異なり、結果として空文字列を返しているセルです。そこへ翌月の日付を手で足すと式を上書きします。毎月切り替えて使う予定表では、末尾の空欄にも式を残しておきます。

A4が1日の一覧で、2026年2月はA31が28日でA32以降空欄、2024年2月はA32が29日でA33以降空欄
A4が1日なので、28日はA31、29日はA32です。月末後も数式を残し、空文字列を表示します。

曜日表示と土日の色を日付の値から付ける

A4:A34を選択し、[セルの書式設定]の[ユーザー定義]へm/d(aaa)を指定すると、日本語環境では日付の後ろに曜日を表示できます。年も確認したい保存用の表にはyyyy/m/d(aaa)が向いています。日付は数値のままなので、表示だけを変えても月末の判定式は使えます。

土日を色付けするなら、A4:A34を選択し、条件付き書式で「数式を使用して、書式設定するセルを決定」を選びます。次の式で、月曜を1とした曜日が6以上、つまり土日である日付に書式を付けられます。

=IF(ISNUMBER($A4),WEEKDAY($A4,2)>=6,FALSE)

適用先をA4:A34にし、参照の行番号が先頭の4になっていることを確かめます。ISNUMBERの判定を入れることで、月末後の空文字列に曜日計算を適用しない形にしています。行全体へ色を付けたい場合も、日付列のAだけを固定し、行番号は固定しません。

この条件は祝日を判定しません。休日予定表なら、祝日・会社休日を別途管理します。土日に色が付いているだけで営業日数が正しく求められるとは限らないため、勤務日や納期の計算へ使う場合は休日の定義をそろえてください。

空欄、文字列、コピー位置の間違いを調べる

まずC1とD1が期待する月初・月末になっているかを調べます。ここが違う状態で日付一覧の末尾だけを手直ししても、翌月に同じ問題が起こります。A1・B1が空欄なら入力し、文字列の「2月」などが入っていれば数値の2へ直します。

年・月を空欄のまま使う設計なら、C1を=IF(OR(A1="",B1=""),"",DATE(A1,B1,1))、D1を=IF(C1="","",EOMONTH(C1,0))、A4を=IF(C1="","",C1)に変更します。これは未入力時の表示を空欄にする処理で、月が13などの不正入力をすべて検出する式ではありません。

月末後に1月の日付が現れる場合や、毎行同じ日付になる場合は、A5以降の式を数式バーで見比べます。上のセルへの参照が1行ずつ進み、月末への参照だけが$D$1のままなら正しい形です。予定表を別の位置へ移したら、見出しを除いた日付開始セルに合わせて参照も見直します。

翌月へ切り替える前に予定との対応を保存する

日付列の横に会議や当番を手入力している場合、年・月を変えても、その文字は同じ行に残ります。2026年2月1日の横へ書いた予定が、3月へ切り替えただけで3月1日の予定として正しくなるわけではありません。曜日も変わるため、前月の予定を流用する前に内容を確認します。

月ごとの記録を残すなら、切り替え前にシートを複製して「2026年2月」などの名前を付けます。参照先が別シートの共通入力欄になっている表では、複製先まで月が変わらないかも確認してください。長期の予定を管理する場合は、年月日をキーにした予定一覧を別に持つ方法が適しています。

完成時には表の4つの年月例へ切り替え、月末と空欄の開始位置を確認します。誤って式を上書きした直後はCtrl+Zで戻し、閉じた後なら保存したコピーから復元します。最後に使いたい年月へ戻し、印刷プレビューで余分な空行や切れた注記がないことを確かめて保存してください。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。
この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】