Power Appsで「今月の1日」や「来月の1日」を取得したいと思ったことはありませんか?
例えば、月次レポートの期間設定や、カレンダー表示の基準日として月の1日が必要になる場面は多いですよね。標準の関数だけでも実現できますが、毎回Date関数とYear関数、Month関数を組み合わせて書くのは少し面倒です。
ほかにも、「3ヶ月後の1日」とか、「半年前の1日」とか。
そんな時に便利なのが、今回ご紹介するFirstDay関数です。このユーザー定義関数を使えば、指定した数値で月を加算・減算した1日を簡単に取得できるようになります。
Power Apps のユーザー定義関数とは?
ユーザー定義関数は Power Apps 内でプログラミングでいうところのメソッドを定義できる機能で、ユーザーごとに独自の関数を作成し、それをアプリ内で利用できる機能のことです。
FirstDay関数とは
この関数は、PowerFxで作成したユーザー定義関数で、以下のパラメータを指定して利用します:

- 月のオフセット値
monthOffset
使い方の具体例
実際にどのように動作するのか見てみましょう。
まずは具体的な関数の式を紹介します。
powerFx
FirstDay(monthOffset: Number): Date =
With(
{targetDate: DateAdd(Today(), monthOffset, TimeUnit.Months)},
Date(Year(targetDate), Month(targetDate), 1)
);

月のオフセット値を0と指定すると、今月の1日が取得できます。
powerFx
FirstDay(0) // 2025/11/01
同様に、1と指定すると、来月の1日が取得できるんですね。
powerFx
FirstDay(1) // 2025/12/01
このような仕組みにより、好きな月の1日を自由に取得できる形となっています。
マイナスの値も指定できるので、過去の月の1日も簡単に取得可能です。
powerFx
FirstDay(-1) // 2025/10/01(先月の1日)
FirstDay(-6) // 2025/05/01(半年前の1日)
Sequence関数との組み合わせ
ここで特に便利なのが、Sequence関数との組み合わせです。
この組み合わせを使うことで、連続した月の初めのリストを作ることが可能なんです。
powerFx
Concat(Sequence(6,0),FirstDay(Value),"
")
これだけで、今月から6ヶ月分の月初日が連続したテーブルとして取得できます。
もちろん、Sequence関数の開始数字を-12にしたり、ステップの数値を変更することで、去年の日付から開始にしたり、四半期ごとの日付に変更したりなどが可能です。
powerFx
// 去年の今月から12ヶ月分
Concat(Sequence(13,-12),FirstDay(Value),"
")
どんな場面で使えるの?
このFirstDay関数の利用用途としては、主に以下のような場面で活躍します:
- 月次レポートの期間設定
- カレンダーやスケジュール表示の基準日
- 月ごとのデータフィルタリング
- 請求期間や集計期間の開始日設定
- Sequence関数と組み合わせた連続月リストの作成
月の1日を基準とした処理であれば、様々な場面で応用できるでしょう。
さらに学びたい方へ
Power Fxの標準関数にはない機能も、工夫次第で実現できるのがユーザー定義関数の魅力です。ぜひ試してみてください。
Power Apps学習の決定版!コントロール別YouTube再生リスト完全ガイド
Power Appsを学習していて「どのコントロールをどう使えばいいのかわからない」「実際の使い方を動画で見ながら覚えたい」と思ったことはありませんか?
実践的な知識を効率よく身につけられるよう、現在公開している動画を整理したYouTube再生リスト集をご紹介します。



コメント