はじめに
Power Fxに EDate
関数と EOMonth
関数が追加されました!
これにより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を利用できるようになりました。
そして、 EOMonth
関数はデスクトップフローでも利用することができます。
つまり今回のアップデートにより、PADでも月末の計算が容易になったというわけです。
例えばこんなフローを作成します。
すると、以下のように月末を表示してくれる。というわけですね。
おわりに
Power Fxにはこの関数の他にもいくつか関数が追加されています。
気になった方は是非見てみてくださいねー