ホーム読みもの

作ったPower Appsが遅い、件数が増えたら結果もおかしい

起動が遅いのと、一覧が遅いのと、そもそも全件を見ていないのは別の問題です。特に3つめは「遅い」ではなく「間違っている」ので、先に確認してください。

読了 約5分 Power Appsトラブル対応内製化

作ったときは快適だったのに、データが増えてきたら遅くなった。

Power Apps の「遅い」は、原因が3つに分かれます。そして3つめは、遅いのではなく結果が間違っています。そちらから先に確認してください。

先に確認:全件を見ていない可能性

Power Apps は、データソースから一度に取ってくる件数に上限があります(既定で500件。設定で増やせますが、それでも上限があります)。

問題は、上限に当たったときにエラーにならず、静かに一部だけで処理されることです。

  • 1,000件のリストで「未処理のものを探す」→ 先頭500件の中からしか探さない
  • 合計を出す → 500件分の合計が出る
  • 検索しても、あるはずのものが出てこない

件数が少ないうちは正しく動くので、気づくのが遅れます。

見分け方

作っているときに、数式の左に青い下線と警告アイコンが出ていませんか。「委任できません」という警告です。これが出ている数式は、上限の中でしか動いていません。

作ったときは50件だったので気づかなかった——というのが典型です。

対処

1. 委任できる書き方に変える

同じことをするのでも、書き方によって「データソース側で絞ってから取ってくる」か「全部取ってきてからアプリ側で絞る」かが変わります。前者が委任できる書き方です。

SharePointリストが相手なら、

  • Filter() で単純な比較(=, >, <, StartsWith)→ 委任できる
  • Search()、複雑な条件、一部の関数 → 委任できないことがある

警告が出ている関数を、出ない書き方に置き換えるのが基本です。

2. そもそも全件を見せない

これが本命かもしれません。

  • 「今年度のもの」「自分の担当分」「未処理のもの」に最初から絞る
  • 全件から探すのではなく、検索してから表示する形にする

利用者も、1,000件の一覧をスクロールしたいわけではありません。絞ってから見せるほうが、速いうえに使いやすいです。

3. 絞り込みに使う列にインデックスを付ける

SharePointリスト側の設定です。よく使う列にインデックスを付けておくと、絞り込みが安定します(ExcelをそのままSharePointリストに移すと にも書いた、件数が増えたときの対処と同じです)。

ここは「速くする」より前の話です

上限に当たった状態は、遅いのではなく答えが間違っている状態です。速度の改善より先に、必ずここを潰してください。数字を扱うアプリなら、なおさらです。

起動が遅い場合

アプリを開いてから使えるまでが長い、というケース。原因はだいたい決まっています。

OnStart で読み込みすぎている起動時にいくつものデータを全部読み込んでいると、その分だけ待たされます。

  • その画面で必要になるまで読まない(使われない画面のデータを起動時に読まない)
  • どうしても起動時に要るものは、同時に読む(順番に読むと合計時間になります)
  • 「起動時に全件をコレクションに入れる」をやめる。件数が増えた瞬間に破綻します

画像が大きいロゴや背景に、撮ったままの写真を貼っていませんか。表示するサイズに縮めてから入れるだけで、体感が変わります。

画面とコントロールが多すぎる使っていない画面、隠しているだけのコントロールが残っていると、それも読み込まれます。使っていないものは削除する。

一覧のスクロールが重い場合

ギャラリー(一覧)の中に、部品を詰め込みすぎているケースです。

  • 1行あたりのコントロール数を減らす(表示する項目を絞る)
  • 行ごとに別のデータを取りに行く書き方をしていないか確認する(1行につき1回問い合わせが発生します)
  • 画像やアイコンを行ごとに読み込んでいないか

「1行ごとに何かを取りに行く」は、行数が増えた瞬間に効いてきます。必要な情報は、最初のデータ取得にまとめて含めるのが基本です。

直す前に測る

どこが遅いのかを決めつけずに、順番に確認します。

  1. 警告(委任できません)が出ている数式はあるか → あれば最優先
  2. 起動が遅いのか、操作が遅いのか → 別の問題です
  3. 起動が遅いなら OnStart を一時的に空にしてみる → 速くなればそこが原因
  4. 一覧が遅いなら、表示件数を減らしてみる → 速くなれば取得の問題

1つずつ変えて、1つずつ確かめる。まとめて直すと、何が効いたか分からなくなります。

そもそも Power Apps でやるべきか

最後に、身も蓋もない話を。

件数が数万件あって、複雑な絞り込みと集計が要る——という要件なら、画面を作り込むより、SharePointリストのビューで足りることがあります。あるいは、Excelのほうが向いていることも(そのアプリ、Excelの関数だけで足りませんか)。

「遅い」の相談を受けて、作り直すのではなく規模を見直して終わることも実際にあります。

まとめ

  • まず「全件を見ているか」を確認する。上限に当たると、エラーにならず一部だけで処理される
  • 数式の委任できませんという警告が出ていないか見る。出ていれば最優先で直す
  • 委任できる書き方に変えるか、そもそも全件を見せない(絞ってから表示する)
  • 絞り込みに使う列にインデックスを付ける
  • 起動が遅いなら OnStart の読み込み・画像のサイズ・不要な画面
  • 一覧が遅いなら 1行あたりのコントロール数と、行ごとの問い合わせ
  • 1つずつ変えて、1つずつ確かめる
  • 規模が合っていないなら、作り直すよりやり方を見直す

数式の警告を見せてもらえれば、だいたいその場で当たりが付きます。作ったものを直すところからでも構いません。

この記事で使うシートを配っています

XLSX

自動化ツール一覧(管理台帳)

社内で作った自動化フロー・アプリ・マクロ・RPAを1枚に並べる台帳です。止まると困る度と引き継ぎにくさから、危ない行に自動で色が付きます。

ダウンロード(無料・登録不要)

Excel(.xlsx) / 16 KB ※社内での利用・改変・配布は自由/転載・再配布・販売は不可

読んだうえで「うちの場合はどうか」を話したい方へ

OKD SOFT は、生成AI(Microsoft 365 Copilot / Copilot Studio)と Power Platform を使った業務改善・内製化支援をしています。作って渡して終わりにせず、担当の方が自分で直せる状態までご一緒します。

「何から手をつければいいか分からない」の段階でも大丈夫です。まずは現状をうかがうところから。