コルネの進捗や備忘録が記されたなにか

進捗や成果物や備忘録てきななにかを雑に更新していきます。

Power Appsで月末の計算が簡単にできるようになりました!


スポンサードリンク

はじめに

Power Fxに EDate 関数と EOMonth 関数が追加されました!

learn.microsoft.com

これによりPower Appsで簡単に月末の計算ができるようになりました。

Power Appsで月末を求める

これまでは

これまではPower Appsで月末を求めようとすると以下のような式で計算する必要がありました。

DateAdd(Date(Year(DatePicker1.SelectedDate), Month(DatePicker1.SelectedDate) + 1, 1), -1)

ちなみに月初めはこちらですね。

Date(Year(DatePicker1.SelectedDate), Month(DatePicker1.SelectedDate), 1)

これからは

しかしこれからはこんな式書かなくとも EOMonth 関数を利用して簡単に月末を求めることができるようになりました!

例えば対象の月の月末を求めたい場合は以下のようになりますね。

EOMonth(DatePicker1.SelectedDate, 0)

EOMonth 関数は第一引数に元となる日付を、第二引数に第一引数に加算する月の数を設定します。

なので対象の日付の月末を求めたい場合は上記のように

// "DatePicker1.SelectedDate"の月末
EOMonth(DatePicker1.SelectedDate, 0)

となり、3か月後の月末だと

// "DatePicker1.SelectedDate"の3か月後の月末だと
EOMonth(DatePicker1.SelectedDate, 3)

となり、5か月前の月末だと

// "DatePicker1.SelectedDate"の月末
EOMonth(DatePicker1.SelectedDate, -5)

となります。

簡単に月末を求められるようになりましたねー

EDate

同時に追加された EDate 関数も一応紹介しておきます。

こちらは第一引数に指定した日付に、第二引数で指定した月を加算した結果を返します。

これにより加算された結果は月末を超えない限りは日付の箇所は変更されません。
例えば、7月31日に1か月加算すると、6月30日になります。

EDate(Date(2024, 1, 31), 1)

上記に結果は "2024/02/29" となります。

EDate(Date(2024, 1, 31), 2)

上記に結果は "2024/03/31" となります。

EDate(Date(2024, 1, 31), 3)

上記に結果は "2024/04/30" となります。

EDate(Date(2024, 1, 31), 0)

上記に結果は "2024/01/31" となります。

EDate(Date(2024, 1, 31), -1)

上記に結果は "2023/12/31" となります。

EDate(Date(2024, 1, 30), 2)

上記に結果は "2024/03/30" となります。

EDate(Date(2024, 1, 30), 3)

上記に結果は "2024/04/30" となります。

ただPower Appsでの日付計算に慣れている方はここまでみて気づいたかもしれませんが、これ既存の DateAdd 関数で月を加算したときと同じ動作なんですよね。

DateAdd(Date(2024, 1, 31), 2, TimeUnit.Months)

EDate 関数に関しては、 DateAdd 関数との使い分けがいまいちわからなかったです。。。
どなたか知見のある方いたら、こういうことができるようになったよ!などご教示いただけると幸いです。

おまけ

最近の更新でPower Automate DesktopでもPower Fxを利用できるようになりました。

learn.microsoft.com

そして、 EOMonth 関数はデスクトップフローでも利用することができます。

つまり今回のアップデートにより、PADでも月末の計算が容易になったというわけです。

例えばこんなフローを作成します。

すると、以下のように月末を表示してくれる。というわけですね。

おわりに

Power Fxにはこの関数の他にもいくつか関数が追加されています。

気になった方は是非見てみてくださいねー

learn.microsoft.com


スポンサードリンク