研修資料Power Apps

Power Appsでよく使う関数30選|構文・使い方を初心者向けに解説

Power Appsでよく使う関数30選を紹介する初心者向け記事のサムネイル 研修資料
この記事は約13分で読めます。

Power Appsでアプリを作っていると、「画面を移動したい」「一覧を検索したい」「入力した内容を保存したい」といった場面が出てきます。その動きを式で表すときに使うのが、Power Fxの関数です。

この記事では、Power Appsでよく使う30個の関数を、目的別に8つのグループへ分けて紹介します。それぞれの関数を、構文・役割・短い使用例の順に確認できます。

すべてを暗記する必要はありません。まずは「何をしたいか」からグループを選び、必要な関数を探すレファレンスとして使ってください。

  1. この記事の読み方
  2. 関数一覧
  3. ① 画面を移動する
    1. 1. Navigate:指定した画面へ移動する
    2. 2. Back:直前の画面へ戻る
    3. 3. Exit:アプリを終了する
  4. ② フォームを操作する
    1. 4. NewForm:新規入力モードにする
    2. 5. EditForm:編集モードにする
    3. 6. SubmitForm:フォームの内容を保存する
  5. ③ データを探す・並べる
    1. 7. Filter:条件に合う行だけを取り出す
    2. 8. Search:文字を含む行を検索する
    3. 9. StartsWith:指定した文字で始まるか調べる
    4. 10. Sort:式の結果で並べ替える
    5. 11. SortByColumns:列名を指定して並べ替える
    6. 12. First:テーブルの最初の1行を返す
    7. 13. Last:テーブルの最後の1行を返す
  6. ④ データを追加・更新する
    1. 14. Patch:レコードを追加・更新する
    2. 15. Defaults:新規レコードの初期値を返す
    3. 16. Blank:空白の値を作る
    4. 17. IsBlank:値が空白か調べる
  7. ⑤ 条件で分ける
    1. 18. If:条件によって結果を変える
    2. 19. Switch:1つの値を複数候補と比べる
  8. ⑥ 日付・時刻を扱う
    1. 20. Now:現在の日付と時刻を返す
    2. 21. Today:今日の日付を返す
    3. 22. DateTimeValue:文字を日時へ変換する
    4. 23. Hour:日時から「時」を取り出す
    5. 24. Minute:日時から「分」を取り出す
  9. ⑦ 計算する・文字にする
    1. 25. Sum:数値を合計する
    2. 26. Int:小さい整数側へ丸める
    3. 27. Mod:割り算の余りを返す
    4. 28. Text:値を指定した書式の文字にする
  10. ⑧ ユーザー情報・お知らせ
    1. 29. User:現在のPower Appsユーザー情報を返す
    2. 30. Notify:画面上部へメッセージを表示する
  11. 長い式は内側から読む
  12. うまく動かないときの確認項目
  13. まとめ
  14. 参考資料

この記事の読み方

関数の基本形は、次のとおりです。

関数名(第1引数, 第2引数, ...) → 戻り値
  • 関数名:何をするかを表す名前
  • 引数:関数へ渡す対象や条件
  • 戻り値:関数を実行して得られる結果

この記事の式は、日本語環境など、小数点にピリオドを使う地域の表記です。引数はカンマ ,、複数の処理はセミコロン ; で区切ります。言語・地域設定によっては、引数が ;、処理の連結が ;; になるため、コピーした式でエラーが出る場合は区切り記号を確認してください。

Power Appsの関数30選を8つの目的別に整理した図

関数一覧

分類 関数
① 画面を移動する Navigate、Back、Exit
② フォームを操作する NewForm、EditForm、SubmitForm
③ データを探す・並べる Filter、Search、StartsWith、Sort、SortByColumns、First、Last
④ データを追加・更新する Patch、Defaults、Blank、IsBlank
⑤ 条件で分ける If、Switch
⑥ 日付・時刻を扱う Now、Today、DateTimeValue、Hour、Minute
⑦ 計算・文字にする Sum、Int、Mod、Text
⑧ ユーザー情報・お知らせ User、Notify
やりたいことからPower Appsの関数を選ぶ流れを示した図

① 画面を移動する

1. Navigate:指定した画面へ移動する

Navigate(画面 [, 画面切り替え効果 [, コンテキスト変数]])

ボタンを選択したときなどに、指定した画面へ移動します。

// ボタンの OnSelect
Navigate(BrowseScreen1, ScreenTransition.Fade)

第2引数を省略すると、画面切り替え効果は ScreenTransition.None になります。正常に実行されると true、エラーが起きると false を返しますが、通常は画面移動のために使います。

2. Back:直前の画面へ戻る

Back([画面切り替え効果])

現在の画面へ来る前に表示していた画面へ戻ります。

// 戻るボタンの OnSelect
Back()

「特定の画面へ移動する」のが Navigate、「直前の画面へ戻る」のが Back です。

3. Exit:アプリを終了する

Exit([サインアウト])

実行中のアプリを終了します。Exit(true) とすると、終了時にPower Appsからもサインアウトします。

// 終了ボタンの OnSelect
Exit()

共有端末で true を使う場合は、ほかのMicrosoft 365サービスへの影響も考え、実際の環境で動作を確認してください。

② フォームを操作する

フォームには、新規入力・編集・表示のモードがあります。次の関数でモード切り替えや保存を行います。

4. NewForm:新規入力モードにする

NewForm(フォーム名)

フォームを空の新規入力モードへ切り替えます。

// 新規作成ボタンの OnSelect
NewForm(EditForm1); Navigate(EditScreen1)

5. EditForm:編集モードにする

EditForm(フォーム名)

既存のデータを書き換えられる編集モードへ切り替えます。

// 編集ボタンの OnSelect
EditForm(EditForm1)

編集対象は、フォームの Item プロパティで指定します。関数を実行するだけでは、どのデータを編集するかは決まりません。

6. SubmitForm:フォームの内容を保存する

SubmitForm(フォーム名)

フォームの入力内容を検証し、データソースへ送信します。成功するとフォームの OnSuccess、失敗すると OnFailure が実行されます。

// 保存ボタンの OnSelect
SubmitForm(EditForm1)

SubmitFormは実際のデータを変更します。学習中は、業務で使用中のデータではなく、練習用のデータソースで確認してください。

③ データを探す・並べる

このグループの関数は、ギャラリーの Items プロパティでよく使います。

7. Filter:条件に合う行だけを取り出す

Filter(テーブル, 条件1 [, 条件2, ...])

テーブルから、すべての条件に合うレコードを取り出します。

// エリアが東京の社員だけを表示
Filter(社員一覧, エリア = "東京")

条件を複数書いた場合は、すべての条件に合う行が返ります。

検索欄が空なら全件表示する

検索欄が空のときは全件を表示し、文字が入力されたときだけ絞り込む場合は、IsBlankと ||(または)を組み合わせます。

Filter(
    社員一覧,
    IsBlank(TextInputSearch.Text) ||
    エリア = TextInputSearch.Text
)
  • 検索欄が空の場合:IsBlank(...)が trueになるため、すべての行を表示する
  • 検索欄に文字がある場合:エリアが検索文字と完全に一致する行だけを表示する

前方一致で絞り込む場合は、完全一致の条件を StartsWithへ置き換えます。

Filter(
    社員一覧,
    IsBlank(TextInputSearch.Text) ||
    StartsWith(エリア, TextInputSearch.Text)
)

新しいテキスト入力コントロールでは、環境によって .Textではなく .Valueを使用します。プロパティ名でエラーが出た場合は、入力コントロールの候補に表示されるプロパティを確認してください。

8. Search:文字を含む行を検索する

Search(テーブル, 検索文字列, 列1 [, 列2, ...])

指定した列の中に検索文字列が含まれるレコードを返します。検索文字列が空なら、すべてのレコードを返します。

// 氏名列とエリア列を部分一致で検索
Search(社員一覧, TextInputSearch.Text, 氏名, エリア)

現在の構文では、検索対象の列名を通常はダブルクォーテーションで囲みません。古い教材では "氏名" のような表記が残っていることがあります。

9. StartsWith:指定した文字で始まるか調べる

StartsWith(調べる文字列, 先頭の文字列)

文字列が指定した文字で始まる場合は true、始まらない場合は false を返します。

// Title列が検索文字列で始まる行を表示
Filter(申請一覧, StartsWith(Title, TextInputSearch.Text))

Searchは部分一致、StartsWithは前方一致です。接続先によっては、StartsWithのほうが委任しやすい場合があります。

10. Sort:式の結果で並べ替える

Sort(テーブル, 並べ替えの基準 [, 並び順])

1つの列や式を基準に、テーブルを並べ替えます。並び順を省略すると昇順です。

Sort(社員一覧, 氏名, SortOrder.Ascending)

11. SortByColumns:列名を指定して並べ替える

SortByColumns(テーブル, "列名1" [, 並び順1, "列名2", 並び順2, ...])

列名を文字列で指定して並べ替えます。複数の列を順番に指定できるのが特徴です。

SortByColumns(
    社員一覧,
    "部署", SortOrder.Ascending,
    "氏名", SortOrder.Ascending
)

Sortは列や式を直接指定し、SortByColumnsは列名を文字列で指定します。

12. First:テーブルの最初の1行を返す

First(テーブル)

テーブルの最初のレコードを返します。

// 作成日時で新しい順に並べ、最初の1行を取得
First(SortByColumns(申請一覧, "Created", SortOrder.Descending))

「最初」が何を意味するかを明確にしたいときは、先に Sort または SortByColumns で順番を決めます。

13. Last:テーブルの最後の1行を返す

Last(テーブル)

テーブルの最後のレコードを返します。

Last(社員一覧)

注意したいのは、最後の行が必ず最新データとは限らないことです。最新データを取りたい場合は、日時やIDで並べ替えてから First を使うほうが意図を伝えやすくなります。

委任の注意:外部データソースを使う式では、処理をデータソース側へ任せられない場合があります。青い波線が表示された式は、最初の500件または設定した上限までのデータだけで計算され、結果が不完全になる可能性があります。実際のデータソースに合わせて、Microsoftの委任一覧を確認してください。

④ データを追加・更新する

14. Patch:レコードを追加・更新する

Patch(データソース, 基準レコード, 変更内容)

フォームを使わずに、レコードを追加または更新します。

// 新しいレコードを追加
Patch(
    申請一覧,
    Defaults(申請一覧),
    {Title: "新規申請", 状態: "未確認"}
)
// ギャラリーで選択したレコードを更新
Patch(
    申請一覧,
    Gallery1.Selected,
    {状態: "承認"}
)

Patchは実際のデータを変更します。更新対象が正しいか、ボタンを押す前に確認できる画面設計にしておくことが大切です。

15. Defaults:新規レコードの初期値を返す

Defaults(データソース)

データソースの初期値を持つ新規レコードを返します。Patchの第2引数に指定すると、新しい行を追加できます。

Patch(申請一覧, Defaults(申請一覧), {Title: "新規申請"})

16. Blank:空白の値を作る

Blank()

値がない状態を表す空白値を返します。値を消したいときにも使います。

// 選択したレコードの備考を空白にする
Patch(申請一覧, Gallery1.Selected, {備考: Blank()})

17. IsBlank:値が空白か調べる

IsBlank(値)

値が空白または空の文字列 "" なら true を返します。

// 検索欄が空なら全件、入力されていれば絞り込む
If(
    IsBlank(TextInputSearch.Text),
    社員一覧,
    Filter(社員一覧, エリア = TextInputSearch.Text)
)

Blank()は空白値を作る関数、IsBlank(...)は空白かを調べる関数です。空のテーブルを調べる場合は IsEmpty を使います。

⑤ 条件で分ける

18. If:条件によって結果を変える

If(条件, 条件に合うときの結果 [, 合わないときの結果])

条件が true か false かによって、結果や動作を切り替えます。

If(
    IsBlank(TextInputName.Text),
    Notify("氏名を入力してください", NotificationType.Warning),
    SubmitForm(EditForm1)
)

19. Switch:1つの値を複数候補と比べる

Switch(調べる値, 候補1, 結果1 [, 候補2, 結果2, ... [, 既定の結果]])

1つの値を複数の候補と比べ、それぞれに対応する結果を返します。

Switch(
    ThisItem.状態.Value,
    "未確認", Color.Gray,
    "承認", Color.DodgerBlue,
    "却下", Color.Red,
    Color.Black
)

条件式そのものが複数ある場合は If、1つの値を候補と照合する場合は Switch と考えると選びやすくなります。

⑥ 日付・時刻を扱う

20. Now:現在の日付と時刻を返す

Now()

式が評価された時点の日付と時刻を返します。

// 登録日時の初期値
Now()

21. Today:今日の日付を返す

Today()

時刻を含まない、今日の日付を返します。

// 申請日の初期値
Today()

22. DateTimeValue:文字を日時へ変換する

DateTimeValue(文字列 [, 言語タグ])

日時を表す文字列を、計算や保存に使える日時値へ変換します。

DateTimeValue("2026/09/27 9:00", "ja-JP")

同じ文字列でも、言語・地域によって日付の読み方が変わる場合があります。形式を固定したいときは、言語タグも指定すると意図が明確になります。

23. Hour:日時から「時」を取り出す

Hour(日時)

日時から、0〜23の「時」を数値で返します。

Hour(Now())

24. Minute:日時から「分」を取り出す

Minute(日時)

日時から、0〜59の「分」を数値で返します。

Minute(Now())

⑦ 計算する・文字にする

25. Sum:数値を合計する

Sum(テーブル, 合計する式)

テーブルの各レコードで式を計算し、その合計を返します。

// 明細の金額を合計
Sum(明細, 金額)

26. Int:小さい整数側へ丸める

Int(数値)

数値を、その値以下で最も近い整数へ丸めます。

Int(2.16)   // 2
Int(-2.16)  // -3

正の数では小数部分を取り除くように見えますが、負の数では -3 のように0から離れる方向へ丸められます。負の数でも小数部分だけを取り除きたい場合は Trunc を使います。

27. Mod:割り算の余りを返す

Mod(割られる数, 割る数)

割り算の余りを返します。

Mod(130, 60) // 10

時間計算では、合計分数から「60で割った余りの分」を求めるときなどに使えます。

28. Text:値を指定した書式の文字にする

Text(値 [, 書式 [, 結果の言語タグ]])

数値や日時を、表示用の文字列に変換します。

Text(ThisItem.出勤時間, "yyyy/mm/dd h:mm", "ja-JP")

Textの結果は文字列です。日時の計算に使う元データは日時型のまま保持し、画面へ表示するときに書式を整えるのが基本です。

⑧ ユーザー情報・お知らせ

29. User:現在のPower Appsユーザー情報を返す

User()
User().FullName
User().Email

現在Power Appsを使用している人の氏名、UPN、画像などを含むレコードを返します。

// ラベルの Text
"ようこそ、" & User().FullName & "さん"

User().Emailが返すのはSMTPメールアドレスではなく、サインインに使うUPNです。メール送信先やデータ照合へ使う場合は、組織の設定と一致するか確認してください。

30. Notify:画面上部へメッセージを表示する

Notify(メッセージ [, 通知の種類 [, 表示時間]])

アプリの画面上部に、成功・エラー・警告・情報などのメッセージを表示します。表示時間はミリ秒で指定します。

Notify(
    "データを保存しました",
    NotificationType.Success,
    3000
)

3000は3秒です。表示時間を省略した場合は10秒、0を指定した場合は自動的に閉じません。

長い式は内側から読む

複数の関数が組み合わされた式は、内側から順番に確認します。

Sort(
    Search(社員一覧, TextInputSearch.Text, 氏名, エリア),
    氏名,
    SortOrder.Ascending
)

この式は、次の順番で動きます。

  1. Searchで、検索文字列を含むレコードを取り出す
  2. Sortで、検索結果を氏名の昇順に並べ替える
  3. 最終的なテーブルをギャラリーなどへ渡す

ポイントは、内側の関数の戻り値が、外側の関数の引数になることです。

うまく動かないときの確認項目

  • 関数名やコントロール名のつづりが正しいか
  • カッコの数が合っているか
  • 引数の順番と区切り記号が正しいか
  • 入力しているプロパティが正しいか
  • 列のデータ型と、式が期待する型が合っているか
  • データソースへの接続権限や更新権限があるか
  • 青い波線が出ている場合、委任できない処理になっていないか

エラーが出たときは、長い式を一度に直そうとせず、内側の関数から短く実行して戻り値を確認してください。

まとめ

  • 関数は「何をしたいか」で分類すると探しやすい
  • 構文では、引数の数・順番・省略できるかを確認する
  • Blank()とIsBlank(...)、SortとSortByColumnsなど、似た関数は役割の違いで覚える
  • FirstやLastを使う前に、テーブルの並び順を確認する
  • 外部データソースでは、委任によって検索結果が不完全にならないか確認する
  • 長い式は、いちばん内側の関数から読む

すべてを暗記する必要はありません。実現したい動きを決めたら、この記事の分類表とMicrosoft公式ドキュメントの構文を確認し、短い式から試してみましょう。

参考資料

タイトルとURLをコピーしました