9/23/2018

Excel。20日締めの支払月を算出すると、意外にひっかかってしまう。【Date of payment】

Excel。20日締めの支払月を算出すると、意外にひっかかってしまう。

<MONTH & EDATE関数>

Excelは様々な計算を得意としているアプリケーションですが、
日付や時間については、
ちょっと簡単には算出することが難しいことがあります。

次の表を使って説明していきます。

20日締めだとして、締め月はいつなのか?というのを算出しようとする場合でも、
一つの関数で簡単に算出とはいきません。

当然、MONTH関数で”月”を算出したところ意味がありませんね。
20日より前なのか後なのかでわかれるわけですからね。

それならば、DAY関数を使って、
日にちを算出して、
それを条件としてIF関数を使って算出する方法もありますが、

=IF(DAY(A2)<=20,MONTH(A2),MONTH(A2)+1)

という長い数式になって面倒ですね。

【EDATE関数を使ってみる】

この場合、日付関係の関数で、ほとんど使う機会のない、
「EDATE関数」とMONTH関数を組み合わせることで、
先ほどの数式よりも、簡単に数式を作ることができるのです。

ちなみに、EDATE関数は、指定月後(前)の同日の日にちを算出できる関数です。

D2にEDATE関数ダイアログボックスを表示して確認しておきましょう。

開始日には、A2
月には、1としておきます。
では、OKボタンをクリックします。

D2の数式は、
=EDATE(A2,1)

算出された結果はシリアル値で表示されてしまうので、
表示形式を日付に変更しましょう。

表示が日付になりましたね。2018/9/4と算出されています。

たったこれだけのことなので、
あまり使うことがない関数のEDATE関数ですが、

MONTH関数と一緒に使って数式をつくると、
EDATE関数ってこんなことにも使えるだなぁ~と。

では、C2をクリックして、MONTH関数ダイアログボックスを表示します。

シリアル値には、EDATE関数をネストします。

ポイントは、
EDATE関数の開始日の引数にマイナス20を追加するのを
忘れずに設定しておきましょう。

あとは、OKボタンをクリックします。

C2の数式は、
=MONTH(EDATE(A2-20,1))
となっています。

では、数式をコピーしておきましょう。

これで、締め月はいつなのかを算出することができました。
なぜ、マイナス20したのかも、確認しておきましょう。

D2に購入日から-20した日付を算出してみます。

このように算出されるわけですが、
この方法を使えば、仮に10日締めや25日締めの場合は、
10を減算するか、25を減算すればいいわけなので、
現場に合わせて調整もしやすいと思います。

日付系の関数は、なかなか、
応用する使い方が限られるところがありますが、
異なる関数と組み合せによって、
今回のように数式をコンパクトにすることができることもありますので、
機会があれば、様々な関数を組み合わせてみると、
色々発見があるかもしれませんね。