Power Automate Desktop で月末日を指定しよう

2022年9月11日日曜日

RPA

t f B! P L
元SEがPAD:Power Automate Desktop を使った小ネタをメモってます。

難しく書くつもりはありません。

私自身も作成していて感じていることですが

とにかく出来れば良い、って感じじゃないでしょうか。

困っている方の「こんなことやりたい」を記事にしていこうと思ってます。



それでは今日もよろしくお願いします。











今回のお題


『月の末日を取得する』


例えば、業務系のソフトからデータ抽出をする場合であったりとかで

1ヶ月の指定をするシーンって結構あったりします。

そんな時に、月初日は必ず1日なので大丈夫です。


でも、月末日は月によって30日だったり31日だったり

2月だったら28日だったり。

うるう年の計算はどうしようかな?とか。

ちょっと考える必要があるわけです。


もちろん、Swichを使って1月だったら…2月だったら…

というのも出来なくはないので、それでも処理はできます。

でもスマートじゃないじゃないですか。


せっかくRPAで効率化しよう、って取り組んでいるくらいですから

ここはスマートに処理してしまいましょう。




例と解説


月末日の取得方法

考え方は
   「1ヶ月足して1日引く」
です。



例はこちらになります。



この例では、指定した月を起点にして

当月の1日〜月末日を取得できるように作っています。

今回の話である「月末日を取得する」部分は

2・4・5行目、あたりですね。


まず、2行目では指定した年月(TargetYM)に01をくっつけています。

ここで月初日をもってきている訳ですね。

変数指定で”202205”と指定した場合に”20220501”という

月初日を(TextAsDate)入れています。

この時、”20220501”という値を”2022/05/01”という日付に変換するのもお忘れなく。




次に4行目。

ここでは、月初日(TextAsDate)に1ヶ月足しています。

これで一時的に(TextAsDate)は”2022/06/01”となっています。




ここまで来れば分かりますよね。

5行目では、(TextAsDate)から1日引いています。

6月1日の1日前は5月31日ですので、(TextAsDate)は”2022/05/31”となります。


つまり、1日の前の日は必ず先月の月末日となりますので

それが4月であっても、2月であっても、うるう年であっても必ず末日となります。




補足と蛇足


今回の「月の末日を取得する」は以上です。

昔からの考え方ですので、今更感が満載ですが

それを敢えて説明する人が居てもいいんじゃないでしょうか。


ちなみに、先に月末日を求めてから月を移動すると正確性は失われてしまいます。

どういうことかと言うと、例えば

 例:6月の月末日を、7月1日から1日引いて求める
   ↓
   6月30日
   ↓
   更に1ヵ月前(5月)の月末日を求めるために、1ヶ月引く
   ↓
   5月30日となり、月末日ではなくなってしまう



サンプル画像の10行目に、今は消してありますが

メッセージボックスで、日付計算の結果を表示するようにしています。

作成時にはこのように結果を確認するようにしながらフローを作っていくと

問題があった場合に何が悪かったのか、原因の追求が早くなると思います。





それではまた。

日々のルーティンワークを自動化して定時ダッシュを!



Popular Posts

自己紹介

自分の写真
タイトルに付けた”兎に角”という言葉。 ”とにかく”を”兎に角”と書く由来が気になって調べました。 …調べてみると何もないんですね。笑

ブログ アーカイブ

Amazon Search

QooQ