【Excel関数】DATEDIF関数とEOMONTH関数で月末をもって1ヶ月とみなす月数の集計

Excel関数の実践

満月数ではなくて、とにかく月末をもって「1か月」ってカウントしたい!

最適屋
最適屋

DATEDIF関数とEOMONTH関数でなんとかしましょう!

契約期間や入会期間の月数を集計するとき、月末をもって「1ヶ月」として扱いたい場面があります。

月数を求める関数といえば、DATEDIF関数。

しかし、DATEDIF関数が求めるのは満月数。1日だけの契約期間は「0ヶ月」とカウントされます。

これをなんとかする手段が、DATEDIF関数とEOMONTH関数との合わせ技です。

数式の実例:DATEDIF関数とEOMONTH関数で月末をもって1ヶ月とみなす月数の集計

前提は、満月数に満たない日数でも、月末をもって1か月とみなす

DATEDIF関数とEOMONTH関数を組み合わせた数式は、こちらです。

=DATEDIF(EOMONTH(A2,-1)+1, EOMONTH(B2,0),”M”)+1

実際に、A列[契約開始日]・B列[契約終了日]が入力されているシートで、契約月数(非 満月数)を求めてみました。

DATEDIF関数にEOMONTH関数をネストした数式の例
DATEDIF関数にEOMONTH関数をネストした数式の例

数式の解説:考え方・EOMONTH関数・DATEDIF関数

DATEDIF関数にEOMONTH関数をネストした数式は、ちょっと難解。

それぞれの関数の動きを分解して解説します。

しかし、その前に…そもそもなぜEOMONTH関数を使うのか?という点について触れておきます。

考え方:なぜEOMONTH関数を使うのか?

月末をもって1ヶ月とみなす –> 開始日は、どんな日付でも月初を起点としていい

たとえば、契約開始日が「2023/3/30」だとします。

1ヶ月で締めるという考え方では、日にちを無視できます。

30日であっても、15日であっても、2日であっても、3月度の契約には変わりがないので、契約開始日は「2023/3/1」とみなせます。

そこで、EOMONTH関数を使って月初の日付を求めます。

月末をもって1ヶ月とみなす –> 終了日は、どんな日付でも月末を終点としていい

たとえば、契約終了日が契約開始日と同じ「2023/3/30」だとします。

1ヶ月で締めるという考え方では、どんな日にちであっても月末までの契約なので、契約終了日は「2023/3/31」とみなせます。

そこで、EOMONTH関数を使って月末の日付を求めます。

EOMONTH関数で月初・月末の日付を求める

=DATEDIF(EOMONTH(A2,-1)+1, EOMONTH(B2,0), “M”)+1

EOMONTH関数を2つ使っています。

契約開始日から[月初の日付]、契約終了日から[月末の日付]を求めています。

解説のために、元の数式の中身を書き換えると、このようになります。

=DATEDIF([月初の日付], [月末の日付], “M”)+1

月末・月初の日付を求めるEOMONTH関数の使い方については、こちらの記事で解説しています。

DATEDIF関数で月初・月末の満月数を求める

DATEDIF関数に、[月初の日付]と[月末の日付]を渡して、満月数を求めています。

月初から月末までの日数では満月数を満たせず、「0ヶ月」からカウントされることになります。

常に1ヶ月足りないので、数式の最後で「+1」しています。

=DATEDIF([月初の日付], [月末の日付], “M”)+1

おまけ:ネストしないDATEDIF関数とEOMONTH関数を使った数式の書き方

ネストする数式の書き方がわかりづらい場合は、列を追加してみましょう。

  • C列:EOMONTH関数で契約開始日の月初を求める。
  • D列:EOMONTH関数で契約開始日の月末を求める。

月末・月初の日付を求めるEOMONTH関数の使い方については、こちらの記事で解説しています。

DATEDIF関数で、C列・D列を参照すれば、シンプルな数式になります。

=DATEDIF(C2, D2, “M”)+1

ネストしないDATEDIF関数とEOMONTH関数を使った実装イメージはこちら。

DATEDIF関数にEOMONTH関数をネストしない数式の例
DATEDIF関数にEOMONTH関数をネストしない数式の例

C列・D列を非表示にしておけば、よりシンプルに見えます。

まとめ

DATEDIF関数とEOMONTH関数を使って、月末をもって「1ヶ月」とカウントする方法を解説しました。

Excel関数の実践
\ お友だちにも教えてあげましょう/
プロフィール
最適屋

Excel VBAとAccessを独学で習得。2011年から現在まで株式会社アントレ(旧: 株式会社リクルート アントレユニット)と業務委託契約。Excel/Accessで開発した様々な効果集計ツール・営業支援ツールを提供。

Excelで業務効率化| 川良最適化事務所
タイトルとURLをコピーしました