⏱ 10分で読める
🎯 営業日計算
「今月の第3月曜日」や「毎月5営業日目」を自動で計算するフローを作ろうとして、思ったより複雑だと感じたことはありませんか?
カレンダー系の日付計算は「日数を足すだけ」では対応できないパターンが多く、少し工夫が必要です。
今回は Power Automate で毎月の「◯営業日目」を自動で出す方法を整理します。
基本の考え方
「月初から日付を1日ずつ進めながら、土日をスキップしてカウントする」ループを作ります。
月初から1日ずつ確認しながら営業日をカウントする、というシンプルなアルゴリズムで実現できます。
処理の流れ:
① 月初(1日)からスタートする
② その日が平日か判定する(dayOfWeek() で曜日チェック)
③ 平日なら営業日カウントを +1 する
④ 目標の営業日数に達したらループ終了
使うアクションと関数
- Do until:目標営業日数に達するまでループする
- dayOfWeek():曜日を数値で返す(0=日曜、1=月曜…6=土曜)
- addDays():日付を1日ずつ進める
- 変数の初期化:カウント用(整数)と日付用(文字列)の2つを用意する
フロー実装の要点
変数を2つ用意して、Do until ループの中で1日ずつ進めながらカウントします。
変数初期化:
count(整数)= 0 ← 営業日カウンター
currentDate(文字列)= startOfMonth(utcNow()) ← 月初からスタート
Do until:
条件:count == 目標営業日数 ← 目標に達したら終了
中の処理:
1. dayOfWeek(currentDate) を確認
2. 0(日)または 6(土)でなければ count += 1 ← 平日のみカウント
3. currentDate = addDays(currentDate, 1) ← 1日進める

つまずきポイント
dayOfWeek() の戻り値:0=日曜、6=土曜
土日を除外する条件は「0でも6でもない」です。混同しやすいので注意してください。
祝日は非対応:このロジックでは祝日は考慮できません。
祝日対応が必要な場合はSharePointリストで祝日一覧を管理して contains() でチェックする方法が定番です。
ループ上限の確認:Do until のデフォルト上限は60回。月内なら十分ですが念のため確認を。
実務での使いどころ
- 毎月5営業日目に自動でレポートを Outlook で送信する
- 毎月2営業日目に請求処理フローを起動する
- 毎月3営業日目に Excel CSVを自動生成する
- Teams へ「今月の第〇営業日目です」と自動通知する

まとめ
今回は Power Automate で毎月の「◯営業日目」を自動で出す方法を解説しました。
📋 この記事で学んだこと
営業日計算は少し複雑ですが、一度フローが動くと月次業務がすっきり自動化できます。
ぜひ実際のフローで試してみてください。
→ 次に読む記事:「【Vol.29】Power Automate:if()関数で条件分岐をシンプルに書く」


コメント