Excel関数 逆引き集 | 日付が月末か判定 → EOMONTH比較

Excel
スポンサーリンク

概要

「その日付が月末かどうか」を判定する最短手は、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で——この組み合わせを覚えておけば、締め処理やレポートの自動化がぐっとスムーズになります。

タイトルとURLをコピーしました