Power Automateでタスクを自動作成するとき、期限を「毎月の決まった日」にしたい場面がありました。たとえば「当月の25日を期限にする」といった指定です。
このとき、実行した日を基準に日付を足すやり方だと、フローが動く日によって期限がズレてしまいます。そこで、月の初日を起点にする startOfMonth から addDays で日数を足す形で実装しました。
この記事でわかること
- 実行日に左右されず「毎月の固定日(例:25日)」を期限にする式が分かる
- startOfMonth とaddDays の使い方が分かる
完成イメージ(当月25日が入ったPlannerの期限)
先に、式を確認しておきます。「当月の25日」を期限にする式です。
formatDateTime(addDays(startOfMonth(convertFromUtc(utcNow(),'Tokyo Standard Time')),24),'yyyy-MM-dd')
// 当月25日を yyyy-MM-dd 形式で返す(起点=今月1日 + 24日)
この式をPlannerの「タスクの作成」アクションの期限フィールドに入れると、実行した日がいつであっても、その月の25日が期限として入ります。

やっていることは、内側から順に3段階です。
- 協定世界時の現在の日時をターゲットタイムゾーン(Tokyo Standard Time)に変換し、その日時から月の初日を取り出す
- 月の初日に対して日数を足す
- 最後に、日付の文字列(yyyy-MM-dd)に整える
という流れです。一番外側の要素から見ると分かりにくいので、以降の章で内側から順に組み立てていきます。
utcNow() 起点だと実行日でズレる
最初に私が組んだのは、utcNow()(協定世界時で現在の日時を返す関数)を起点にして日を足す形でした。
現在の日時を起点にすると、その基準は「フローが実行された日」になります。今日が5日なら5日を基準に、20日なら20日を基準に計算されます。つまり「当月の25日」を狙って日数を足しても、実行した日によって結果が変わってしまいます。
期限にしたいのは「その月の何日」という固定の日付で、フローがいつ動いたかは関係ありません。ここで必要なのは、実行日に左右されない起点でした。それが、月の初日を返す startOfMonth です。
実行日に依存する utcNow() 起点をやめて、startOfMonth を起点にしました。
実行日に左右されない期限の式を組む
ここからは、完成式を内側から順に組み立てます。使う関数は3つです。
Step1|startOfMonthで「今月の1日」を起点にする
まず、実行日に左右されない起点を作ります。startOfMonth(指定した日時の「その月の初日」を返す関数)を使います。
startOfMonth(convertFromUtc(utcNow(),'Tokyo Standard Time'))
// 今月の1日を起点にする(日本時間に変換してから月初を取る)
utcNow() はそのままだとUTC(協定世界時)の日時を返すため、日本時間との差で月初の判定がずれる可能性があります。そこで convertFromUtc(…,’Tokyo Standard Time’) で日本時間に変換してから startOfMonth に渡しています。
これで、フローが何日に動いても、起点は必ずその月の1日に定まります。
Step2|addDaysで◯日分ずらす
起点が「今月の1日」なので、そこから日数を足して目的の日にします。addDays(指定した日数を足す関数)を使います。
25日にしたいときは、1日を起点にして24日を足します。起点がすでに1日分なので、足すのは「目的の日 − 1」という数え方です。
addDays(startOfMonth(convertFromUtc(utcNow(),'Tokyo Standard Time')),24)
// 今月1日 + 24日 = 今月25日
日付を変えたいときは、この 24 の部分だけを差し替えます。10日にしたいなら 9、16日にしたいなら 15 です。
Step3|formatDateTimeで日付の形に整える
最後に、Plannerの期限フィールドに渡せる形へ整えます。formatDateTime(日時を指定した書式の文字列にする関数)で yyyy-MM-dd の形にします。
formatDateTime(addDays(startOfMonth(convertFromUtc(utcNow(),'Tokyo Standard Time')),24),'yyyy-MM-dd')
// 2026-07-25 のような日付文字列にする
これで完成式になりました。Plannerの「タスクの作成」アクションの期限フィールドに、この式をそのまま入れます。

まとめ
「当月の◯日」を期限にする式を、実行日に左右されない形で組みました。今回のポイントは次の2つです。
- 起点を utcNow() ではなく startOfMonth にすると、実行日に左右されず「その月の初日」から数えられる
addDaysで「目的の日 − 1」を足す(1日が起点のため)。日付を変えたいときはこの数字だけ差し替える
日付計算は最初つまずきやすいところですが、起点さえ固定できれば読みやすい式になります。Power Platformを触り始めたばかりの方に向けて、こういった詰まりポイントをこれからも発信していきます。よかったらブログをブックマークして、またのぞきに来てください。
あわせて読みたい
この期限式は、Plannerにタスクを自動で配る一連のフローの一部として使っているものです。フロー全体の作り方や、毎サイクルで作り直す仕組みは次の記事にまとめています。




コメント