PowerAppsに挑戦し始めてわかったこと(備忘録パート1)
〜Delegation(委任)制限が不安…2026年現在の実態と対策まとめ
はじめに:SharePointリストで検索が「弱く」感じる本当の理由
Power Appsで社内アプリを開発中。
Microsoft 365のデータ(特にSharePointリスト)とガッツリ連携したいけど、
「検索結果が一部しか出ない」「絞り込みでデータが抜け落ちる」「遅い」という情報が!?
いろいろと調べてみたら、原因はDelegation(委任)制限らしい。
2026年現在も、この制限は完全に解消されておらず、特にSharePointリストでは厳しいまま。
この記事では、
- 現在の制限の実態(公式情報ベース)
- 主な原因と影響
- 効果的な対策(優先順位付き)
- Dataverse移行の判断基準
をまとめました。社内ツール担当者の参考になれば幸いです!
2026年現在の主な制限まとめ(Microsoft Learn 2026年1月更新)
| 原因 | 詳細説明 | 影響度 | 回避しやすさ |
|---|---|---|---|
| Delegation(委任)制限 | 非委任クエリの場合、デフォルト500件(アプリ設定で最大2,000件まで増やせる)しか処理されない | ★★★★★ | △(工夫必要) |
| Search()関数の非委任 | Search()自体がSharePointで非委任 → 部分一致検索で抜け落ちやすい | ★★★★★ | ○(Filter代替) |
| Filter()の条件次第で非委任 | 部分一致(Contains系)、Lookup列、計算列、複合条件 → 非委任になりやすい | ★★★★☆ | ○ |
| SharePointリストビュー閾値 | インデックス未設定列でフィルター → 5,000件超でエラー発生 | ★★★★☆ | ◎(インデックスで解決) |
| パフォーマンス低下 | データ量増加で初回ロード遅延、ギャラリー表示が重くなる | ★★★☆☆ | ○ |
公式情報(Microsoft Learn 2026年1月13日更新)
- 非委任クエリの結果制限:デフォルト500件 → 最大2,000件(アプリ設定で変更可能)
- 委任可能な主な演算子:=、<>、<、>、<=、>=、StartsWith、And/Or/Not など
- Search()関数:SharePointでは非委任(前方一致以外で抜け落ちリスク大)
- 参考:https://learn.microsoft.com/en-us/power-apps/maker/canvas-apps/delegation-overview
結論:数千件を超えると「検索結果が一部しか出ない」「該当データが表示されない」という現象が頻発します。
現実的な対策(優先順位順)
1. 最優先!列のインデックス設定
SharePointリスト → リストの設定 → 「インデックス付き列」
→ 検索・フィルターで使う列(タイトル、担当者、ステータス、日付など)を必ずインデックス化。
これで5,000件閾値エラーがほぼ解消され、Filter()の委任成功率が大幅に向上します(最大20列以上可能)。
2. Search()を避けてFilter()+StartsWith()を使う
悪い例(非委任警告が出る):Search(SharePointList, TextInput.Text, "Title", "Description")
良い例(委任されやすい):Filter(SharePointList, StartsWith(Title, TextInput.Text) || StartsWith(担当者.Email, TextInput.Text) )→ 「前方一致」ならほぼ確実に委任されるので、抜け落ちが防げます。
3. データ量が1万件超えそうならDataverseを強く検討
| 項目 | SharePointリスト | Dataverse (Microsoft Dataverse) |
|---|---|---|
| 委任の柔軟さ | 厳しい(多くの条件で非委任) | 非常に広い(Search()も委任可能) |
| Search()の委任 | ×(非委任) | ○ |
| 大量データ性能 | 数万件で厳しくなる | 数十万件でも快適 |
| コスト | Microsoft 365標準で無料 | プレミアムコネクタ・容量課金必要 |
| 向いている規模 | ~数千〜1万件程度 | 中〜大規模 |
→ 将来的にデータが増える前提なら、最初からDataverseで設計するのが後悔少ないです。
4. その他の実践回避策
- アプリ設定で「データ行制限」を2,000件に引き上げ(ただし根本解決ではない)
- ページネーションを実装(「もっと見る」ボタンで逐次読み込み)
- Power Automateで複雑検索を肩代わり
- 複雑な検索はSharePointビューのフィルターを活用し、Power Appsで表示のみ
判断フロー:あなたのアプリに最適な選択は?
- 現在のリスト件数:数百〜数千件?
→ SharePoint続行 + インデックス設定 + Filter()中心でほぼ問題なし - 将来1万件超えそう?部分一致検索が必須?
→ Dataverse移行を計画(最初からDataverseで作り直すのもおすすめ) - 検索精度が命で、複数列横断・部分一致が必要
→ Dataverse or SQL Serverを本気で検討
まとめ
SharePointリストって手軽でMicrosoft 365とバッチリ連携できるし、「これ最強じゃん!」って思ってたけど…
検索・絞り込みのスケーラビリティが、意外と「明確な限界アリ」 🐜
小規模〜中規模の社内ツール(目安:数百件〜5,000〜8,000件くらいまで)なら、
列のインデックス設定+Filter()でStartsWithを駆使すれば「意外とイケる!」って感じで、多くの部署の申請フロー、在庫チェック、ToDoリストがこのゾーンで回っているらしい。
データが1万件超えそう、または「これから爆増する予感しかしない…」って状況になったら、
早めにDataverseを視野に入れた方がいいっぽい。
Dataverseなら委任の壁がグッと低くなって、数十万件でもサクサク動くけど
プレミアムライセンスが必要になる点は注意が必要。
結局のところ、
「今すぐ困っていないけど、1〜2年後にデータ爆増しそう…」という予感があるなら、
設計段階でDataverseを選択するのが最も後悔の少ない道だそうです。
皆さんのPower Apps開発がスムーズに進みますように✨
(調査・更新日:2026年2月)
参考:SharePointリストの上限あるある
SharePointリストの上限が3000万件?と見たので、「ほぼ無限じゃん!」と喜んでいたら…
検索は最初の500件?2,000件?…え?5,000件??👇


