概要
「その日付が月末かどうか」を判定する最短手は、EOMONTH関数で“その月の月末日”を取り出して、対象日付と一致比較する方法です。具体的には A2=EOMONTH(A2,0) が真(TRUE)なら月末、偽(FALSE)なら月中となります。IF関数を組み合わせれば「月末」「月中」といったラベル表示にも簡単に応用できます。
基本の考え方
EOMONTH(日付,0)は「日付が属する月の月末日」を返します。判定したい“その日”と EOMONTH の結果を“イコール比較”するだけで、月末かどうかが一発で分かります。整数の日付(シリアル値)同士の比較なので、安定して動作します。
基本の使い方
その日が月末かをTRUE/FALSEで判定
=A2=EOMONTH(A2,0)
A2が月末なら TRUE、そうでなければ FALSE を返します。
ラベルで表示(「月末」「月中」)
=IF(A2=EOMONTH(A2,0),"月末","月中")
目視で分かりやすい判定表示にします。
今日が月末かどうか
=IF(TODAY()=EOMONTH(TODAY(),0),"月末","月中")
日報やダッシュボードの月末処理フラグに便利です。
具体例
判定列を作る(データ一覧向け)
=IF(B2=EOMONTH(B2,0),"月末","月中")
B列が日付の一覧。各行に「月末」ラベルを付けられます。
数値フラグ(0/1で判定)
=--(A2=EOMONTH(A2,0))
TRUE/FALSEを 1/0 に変換。ピボットや条件付き合計に使いやすくなります。
DAY関数で同値判定(別解)
=DAY(A2)=DAY(EOMONTH(A2,0))
「その日の日」と「月末の日」が一致するかで判定(結果はTRUE/FALSE)。
応用テンプレート
月末だけを抽出して合計(SUMIFS)
=SUMIFS(売上範囲, 日付範囲, "="&EOMONTH(日付範囲,0))
動的配列に対応した環境なら、月末行だけの合計が可能です(環境により工夫が必要)。
月末日前○営業日を求める
=WORKDAY(EOMONTH(A2,0),-5,祝日範囲)
A2の属する“月末の5営業日前”を取得。締め作業の前倒しに便利です。
“その月の月末”を表示して比較の根拠を見せる
=EOMONTH(A2,0)
判定の相手(当月の月末日)を別セルに出して、監査・確認をしやすくします。
よくあるつまずきと対策
表示が数字になる
EOMONTHは“日付のシリアル値”を返します。見づらい場合はセルの表示形式を「日付(yyyy/mm/dd など)」に変えましょう。
日付が文字列扱いで判定できない
「YYYY/MM/DD」が文字列だと比較がうまくいかないことがあります。セルを“日付”として入力するか、DATE(年,月,日)で生成してください。
時刻付きでも判定可能?
A2に時刻が含まれていても、Excel内部は“日付+時刻”の連続値です。EOMONTHは日付部分のみの月末を返すため、A2側に時刻が入っていると“厳密な一致”にならない場合があります。日付のみで管理するか、INT(A2)で日付部分に丸めて比較しましょう。
=INT(A2)=EOMONTH(A2,0)
例題
問題1: A2が“月末”かどうかをTRUE/FALSEでB2に表示してください。
=A2=EOMONTH(A2,0)
問題2: A2が月末なら「月末」、それ以外なら「月中」とC2に表示してください。
=IF(A2=EOMONTH(A2,0),"月末","月中")
問題3: 今日が“月末”かどうかをD2に表示してください(ラベル表示)。
=IF(TODAY()=EOMONTH(TODAY(),0),"月末","月中")
問題4: B2に時刻付き日時が入っています。日付部分のみで“月末”か判定してC2にTRUE/FALSEを表示してください。
=INT(B2)=EOMONTH(B2,0)
問題5: F2の属する月の“5営業日前”の日付をG2に表示してください(祝日一覧H2:H50)。
=WORKDAY(EOMONTH(F2,0),-5,$H$2:$H$50)
まとめ
「月末判定」は EOMONTH(日付,0) で当月の月末を取り、対象日付との一致比較が最短・堅牢です。表示はIFでラベル化、時刻混在はINTで丸め、前倒し計算はWORKDAYで——この組み合わせを覚えておけば、締め処理やレポートの自動化がぐっとスムーズになります。
