20日締めとか4月始まりとか。。。会計月度計算 その1

今日は趣向を変えて、カレンダーに関するトピックです。

通常の日付から、20日締めの会計月度や、4月始まりの会計年度を計算します。

If 構文を使えば、できるのです(その1)が、そこにいくつか工夫を加えてちょっと簡単にしてみたいと思います(その2)。

 

まずは、分かりやすいように、「日付」、「月」、「年」を日付データから予め抽出します。

 [Normal day]

day([Calendar Date])

 

[Normal month]

MONTH([Calendar Date])

 

[Noramal year]

YEAR([Calendar Date])

 

会計「月」の計算は、

[Fiscal month 1]

if [Normal day]>20 then [Normal month] +1 else [Normal month] END

としたいところですが、これだと、答えが「13」を含んでしまいます。

ですので、以下のような回避方法を取ります。

[Fiscal month 1.1]

if [Normal day]>20 and [Normal month] <12 then [Normal month] +1
elseif [Normal day]>20 and [Normal month] =12 then 1
else [Normal month] END

13がでるのは、12の時だけなので、12だけ特別扱いしています。

 

 会計「月」が出せれば、四半期は簡単です。

[Fiscal Quarter 1]

if [Fiscal month 1.2] <=3 then 4
elseif [Fiscal month 1.2] <=6 then 1
elseif [Fiscal month 1.2] <=9 then 2
elseif [Fiscal month 1.2] <=12 then 3
END

 

年は少しややこしいです。

[Fiscal Year 1]

if [Fiscal month 1.2]<=3 then [Noramal year] -1 else [Noramal year] END

これだと、12/21~12/31 までがおかしくなってしまうのです。

f:id:skn_0410:20160629100211p:plain

なので、

[Fiscal Year 1.1]

if [Fiscal month 1.2]=1 and [Normal month]=12 then [Noramal year]
elseif [Fiscal month 1.2]<=3 then [Noramal year] -1 else [Noramal year] END

 

一応、これでできました。

月や年の出し方がちょっとエレガントさとは、かけ離れています。。。

ですので、次回、もう少し別のアプローチを考えます。

それでは、ご自分で試して、楽しんでください。