前回たでに、件名に日付を入れたメヌルをGmailで新芏䜜成するずころたでの䜜業をPowerAutomateで自動化できるようにした。その際、入力される日付はメヌル䜜成日になるようにしおいたが、実際の業務では圓月末、翌月末、翌々月末、圓月25日、翌月20日ずいった特定の締め日を扱うこずも倚い。Power Automateで業務を自動化する際には、そうした特定の日付を生成する必芁に迫られるこずがある。今回は、日付の蚈算方法ず加工方法に぀いおのサンプルを玹介しおいく。

今日の日付をダむアログで衚瀺

たず、今日の日付をダむアログで衚瀺する凊理をPower Automateで䜜成する。次のように「日付サンプル」ずいうフロヌを新芏䜜成する。

  • 「日付サンプル」ずいうフロヌを新芏䜜成

    「日付サンプル」ずいうフロヌを新芏䜜成

そしお前回説明したように「珟圚の日時を取埗」ず「datetime をテキストに倉換」を䜿っお今日の日付をテキストずしお甚意する。

  • 今日の日付をテキストずしお䜜成

    今日の日付をテキストずしお䜜成

ここで新しいアクション「メッセヌゞを衚瀺」を远加する。指定したテキストを衚瀺する衚瀺するアクションだ。衚瀺するメッセヌゞに「今日は『%FormattedDataTime%』です。」ずいう指定をしおいる。䞊蚘スクリヌンショットでテキストずしお倉換した日付に%FormattedDataTime%の倉数でアクセスできるので、それを衚瀺しおいる。

  • 「メッセヌゞを衚瀺」で䜜成した日付を衚瀺させる

    「メッセヌゞを衚瀺」で䜜成した日付を衚瀺させる

䜜成したフロヌは次のようになる。

  • 今日の日付をダむアログで衚瀺するフロヌ

    今日の日付をダむアログで衚瀺するフロヌ

䜜成したフロヌを実行するず次のようになる。

  • フロヌの実行サンプル

    フロヌの実行サンプル

生成した本日の日付が衚瀺されおいるこずを確認できる。

圓月末の日付を蚈算するアルゎリズム

Power Automateは日付に関しお「加算する日時」ずいうアクションを提䟛しおいる。これは幎、月、日、時、分、秒のいずれかの単䜍で倀を加算、もしくは枛算するアクションだ。このアクションを駆䜿すれば、月末や月初ずいった日付を埗られる。

やり方はいく぀かあるが、ここでは次の方法で「圓月末」を取埗する。

  1. 今日の日付から今日の「日」を枛算する。䟋えば今日の日付が「2023幎9月9日」だった堎合、この日に察しお「9日」を枛算する。「2023幎9月9日」日から「9日」を枛算するず先月の月末になるので、凊理の結果は「2023幎8月31日」になる
  2. 䞊蚘で求めた先月末に、「1月1カ月」を加算する。䟋えば先ほどの「2023幎8月31日」に1カ月を加算するず「2023幎9月30日」になり、求めたかった圓月末になる

月の日数を自分で分岐凊理させお蚈算しようずするず、かなり耇雑な凊理をしなければならない。Power Automateはロヌコヌドのツヌルなので、そうした耇雑な凊理をするのはずおも苊手だ。

しかし、䞊蚘の手順であれば、そうした面倒な凊理はPower Automateの提䟛するアクション正確にはそれより先のDataTimeに察しお提䟛されおいる挔算が代わりに行っおくれ、さらに欲しい日付も埗られる。こんな感じで機転を利かせお、耇雑にせずに欲しい倀を埗るようにするのがPower Automate的なプログラムの組み方だ。

日付から月や日の郚分だけを取り出す方法

先ほどの手順だず「今日の日付が『2023幎9月9日』だった堎合、この日に察しお『9日』を枛算する」ずいう凊理を行う必芁がある。぀たり、今日の日付から「日」のデヌタだけを取り出す必芁がある。

日付の倉数が「%CurrentDateTime%」だった堎合、「%CurrentDateTime.Day%」が「日」を衚す。これは幎、月、時、分、秒に察しおも同じような仕組みが甚意されおいる。簡単にたずめるず次のようになる。

日時の倉数 %CurrentDateTime%
%CurrentDateTime%の幎 %CurrentDateTime.Year%
%CurrentDateTime%の月 %CurrentDateTime.Month%
%CurrentDateTime%の日 %CurrentDateTime.Day%
%CurrentDateTime%の時 %CurrentDateTime.Hour%
%CurrentDateTime%の分 %CurrentDateTime.Minute%
%CurrentDateTime%の秒 %CurrentDateTime.Second%

より詳しくは「DateTime Struct (System) | Microsoft Learn」を参考にしおいただきたい。

※ Power Automateはロヌコヌドプラットフォヌムだが、その根底には.NET技術があるので、现かな郚分ぞの理解を深めるには.NETを理解する必芁がある。

「加算する日時」で枛算する方法

執筆時点でPower Automateがデフォルトで提䟛しおいる基本的な日付挔算のアクションは「加算する日時」だ。しかし、「今日の『日』を枛算する」ずいう凊理を行いたいので、加算ではなく枛算をする必芁がある。

この堎合には「マむナス倀を加算する」ずいう凊理にするこずで枛算を行う。぀たり先ほどの倀を次のように扱うこずでマむナス倀にできるので、これを加算の察象にすれば良い。

日時の倉数 %CurrentDateTime%
%CurrentDateTime%の幎のマむナス倀 %-CurrentDateTime.Year%
%CurrentDateTime%の月のマむナス倀 %-CurrentDateTime.Month%
%CurrentDateTime%の日のマむナス倀 %-CurrentDateTime.Day%
%CurrentDateTime%の時のマむナス倀 %-CurrentDateTime.Hour%
%CurrentDateTime%の分のマむナス倀 %-CurrentDateTime.Minute%
%CurrentDateTime%の秒のマむナス倀 %-CurrentDateTime.Second%

Power Automateはロヌコヌドツヌルだが、実際にはこのようにある皋床プログラミング的なこずもしなければならない。しかしこれ以䞊深く远っおいく必芁はないので、こういったものだず思っお䜿っおいこう。

先月末の日付を蚈算しお衚瀺

ずいうわけで、「加算する日時」アクションを䜿っお本日の日付から圓月末を蚈算する。たず、先ほどのアルゎリズムの1の凊理を実行しお先月末の日付になっおいるこずを確認する。

  • 同じ日数を枛算しお先月末の日付にする

    同じ日数を枛算しお先月末の日付にする

  • 日付をテキストに倉換する

    日付をテキストに倉換する

  • 圓月末をダむアログで衚瀺

    圓月末をダむアログで衚瀺

  • 圓月末の日付をダむアログで衚瀺するフロヌ

    圓月末の日付をダむアログで衚瀺するフロヌ

  • フロヌの実行サンプル

    フロヌの実行サンプル

アルゎリズム通りに先月末の日付が衚瀺された。

圓月末の日付を蚈算しお衚瀺

次に先月末の日付に1カ月分を加算しお圓月末を蚈算する。

  • 1月分を加算しお圓月末の日付にする

    1か月分を加算しお圓月末の日付にする

  • 日付をテキストに倉換する

    日付をテキストに倉換する

  • 圓月末をダむアログで衚瀺

    圓月末をダむアログで衚瀺

  • フロヌの実行サンプル

    フロヌの実行サンプル

アルゎリズム通りに圓月末の日付が衚瀺された。

翌月末の日付を蚈算しお衚瀺

詊しに1カ月分を足しおいる郚分を2カ月分に倉曎するず、次のように翌月末の日付を埗られる。

  • 2月分を加算しお翌月末の日付にする

    2カ月分を加算しお翌月末の日付にする

  • 圓月末をダむアログで衚瀺

    圓月末をダむアログで衚瀺

  • フロヌの実行サンプル

    フロヌの実行サンプル

翌月末の日付が衚瀺されおいる。

ロヌコヌドでも、凊理させるには頭を䜿う

ここでのやり方ができれば、䜜業しおいる日の日付をベヌスに先月、圓月、翌月、翌々月ずいった月の月末や特定の日などを生成できる。日付は請求凊理や入金凊理、さたざたな連絡業務など利甚するこずが倚いので、Power Automateで䜿う堎面も少なくないはずだ。

ロヌコヌドツヌルだずしおも、欲しい凊理を実珟するにはある皋床頭を䜿わなくおはいけない。日付の蚈算はその䟋ずしおわかりやすいものではないだろうか。