WeeklyAlteryxTips#80 前月末を求める

Alteryx

本記事は、Alteryx社のAlteryx DesignerにまつわるTipsを毎週お届けするブログシリーズです。

今回でようやく80回を迎えます。

前月末を求める

ところで、日付の計算って結構めんどくさいと思いますが、みなさんはいかがでしょうか?日付は基本的に日時型(日付型)にすることで様々な便利な関数を使うことができます。

ある月の末日があったとして、前月末を求めるにはどうするでしょうか?例えば、2025年1月31日を考えてみましょう。一ヶ月前なので、以下のような計算を思いつくでしょうか?

DateTimeAdd('2025-01-31',-1,"Month")

実際にこれを計算してみましょう。

ちゃんと一ヶ月前の月末の日になっています。

しかし、1年を通してみてみましょう。

いくつかの月でおかしくなっています。2月は1月29日になっていて、月末の31日になっていませんし、4月、6月、9月、11月は前月が31日まであるのに30日になってしまっています。つまりこれ(DateTimeAdd(日付, -1, “Month”))は、月の部分に対しての加減しかしておらず、月末日は月によって変わるのでそのまま足し算、引き算をすると正しい結果にならない、ということです。

これを回避するにはいくつかの方法があります。

  • DateTimeTrimで月でトリムして月初にし、1日引き算をする
  • 1ヶ月引き算をして、DateTimeTrim関数の”lastofmonth”を使う

いずれも関数一つでできませんが、併用することで実現できます。

DateTimeTrimで月でトリムして月初にし、1日引き算をする

関数としては、以下のようになります(インプットを[Date]とします)。

DateTimeAdd(DateTimeTrim([Date],"Month"),-1,"Day")

もともとインプットが月初しかなければ、DateTimeTrimをせずとも、1日に引き算をしたらオッケーです。

1ヶ月引き算をして、DateTimeTrim関数の”lastofmonth”を使う

関数としては、以下のようになります(インプットを[Date]とします)。

DateTimeTrim(DateTimeAdd([Date],-1,"Month"),"lastofmonth")

これらにより、以下のように前月月末が計算できます。

まとめ

  • 前月月末を計算する方法をご紹介しました
  • DateTimeTrim、DateTimeAddを組み合わせることで実現可能です

サンプルワークフローダウンロード

次回

日時操作関連のTipsの予定です。

コメント

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