Power Automate Desktopで1日前の営業日の日付を取得する場合、単純に前日を計算するだけでは、土日や祝日が含まれると意図した日付が取得できません。特に月曜日に前日を取得すると金曜日ではなく日曜日が返ってしまうことがあります。ここではOutlookカレンダーを利用した休日判定を組み合わせたフローの作り方を解説します。
1. Outlookカレンダーから休日情報を取得する
まず、Outlookカレンダーに「休日」として登録されているイベントをPower Automateで取得します。
アクション「Outlookから予定を取得」を使用し、対象のカレンダーと期間を指定します。これで休日リストを配列として扱えるようになります。
2. 前日を計算し、休日を判定する
変数に現在の日付を設定し、1日前の日付を計算します。その日付が休日リストに含まれている場合は、ループを使って前日をさらに1日ずつ減算します。ループの条件として、日付が配列に存在しない場合に抜けるように設定します。
3. 土日を考慮した判定
休日だけでなく、土日も営業日ではない場合は、曜日判定も追加します。
Power Automateでは「DayOfWeek」関数を使い、日付が0(日曜日)または6(土曜日)の場合も前日を減算するループを追加します。
4. 完全なフローの例
- 現在日付を取得 → 前日を計算
- 前日が土日かどうか判定
- 前日が休日配列に含まれるか判定
- 条件に合致する場合、前日をさらに1日減算
- 条件に合致しない場合、その日付を変数に保持 → 終了
まとめ
Power Automateで1日前の営業日を正確に取得するには、単純な日付計算ではなく、Outlookカレンダーから休日を取得して配列で管理し、土日も含めたループで判定する方法が有効です。この方法を使うと、月曜日に前日を取得しても正しく金曜日の日付が返ってきます。


コメント