SharePointリストの上限を徹底解説!5000件問題の原因と対策

プログラミング・IT

「SharePointのリストが突然表示できなくなった!」
「5000件の制限って何?リストには3000万件まで入るのでは?」
「この制限を回避する方法はないの?」

SharePointリストを使っていると、必ず直面するのが「5000件問題」です。
ある日突然エラーメッセージが表示され、データが見られなくなります。

この記事では、SharePointリストの上限について、初心者の方にもわかりやすく徹底解説します。
なぜ5000件で制限されるのか、どう対処すればいいのか、明日から使える知識が身につきます。

スポンサーリンク

SharePointリストの上限とは

保存できる上限vs表示できる上限

SharePointリストには、2種類の「上限」があります。
この違いを理解することが重要です。

保存できる上限: 3000万件
リストやライブラリに保存できるアイテム数の上限です。

  • リスト: 最大3000万アイテム
  • ライブラリ: 最大3000万ファイル・フォルダ

これは非常に大きな数字で、ほとんどの業務では到達しません。

表示・処理できる上限: 5000件
一度に表示・処理できるアイテム数の上限です。

  • リストビューしきい値: 5000件
  • 一度の操作で処理できるアイテム数: 5000件

混乱しやすいポイント
「3000万件まで保存できるのに、5000件しか表示できない」

これが多くの人を混乱させます。
リストには大量のデータを保存できますが、一度に処理できるのは5000件までなのです。

リストビューしきい値とは

リストビューしきい値(List View Threshold: LVT)
一度のデータベース操作で処理できるアイテム数の制限です。

設定値

  • 通常ユーザー: 5000件
  • 管理者: 20000件(SharePoint Server版のみ)
  • SharePoint Online: 変更不可

SharePoint Onlineでは、管理者でもこの値を変更できません。
マルチテナント環境での安定性を保つため、Microsoftが固定しています。

なぜ5000件で制限されるのか

理由: データベースの保護

SharePointのデータは、バックエンドのSQL Serverデータベースに保存されます。

SQL Serverの動作

通常の動作:

  1. ユーザーがリストを表示
  2. SharePointがSQL Serverに問い合わせ
  3. SQL Serverが該当する行をロック(他の人が同時に変更できないように)
  4. データを返す
  5. ロックを解除

5000件以下の場合

  • 必要な行だけをロック(行レベルロック)
  • 他のユーザーは他の行を操作できる
  • 影響は最小限

5000件を超える場合

  • テーブル全体をロック(テーブルレベルロック)
  • 他のユーザーは待たされる
  • システム全体のパフォーマンスが低下

具体例
10000件のリストで並び替えを実行すると:

  1. 全10000件を読み込む
  2. テーブル全体がロックされる
  3. 他のユーザーが待たされる
  4. システムが遅くなる

これを防ぐため、5000件で制限しているのです。

主な制限一覧

SharePointリストには、5000件以外にもさまざまな制限があります。

アイテム数の制限

項目制限値備考
リスト内の最大アイテム数3000万件保存可能な総数
ライブラリ内の最大ファイル数3000万件ファイル+フォルダの合計
リストビューしきい値5000件一度に表示・処理できる件数
管理者用しきい値20000件SharePoint Serverのみ
一括操作の上限100件一度にアップロード可能な件数
フォルダ内の推奨アイテム数5000件以下パフォーマンスを保つため

ビューとインデックスの制限

項目制限値備考
リストあたりのビュー数2000個カスタムビューを含む
インデックス付き列の数20個リストあたり
ルックアップ列の数12個リストあたり
ビューでの結合数12個他のリストとの結合

列と行の制限

項目制限値備考
列の合計サイズ8000バイト全列の合計
1行テキストの文字数255文字1列あたり
複数行テキストの文字数6万文字1列あたり
選択肢の数制限なしただし表示に影響
添付ファイルのサイズ250MBリストアイテムあたり

権限の制限

項目制限値備考
固有のアクセス許可50000個サポート上限
固有のアクセス許可(推奨)5000個推奨値
10万件を超えるアイテムがある場合権限の継承解除不可リスト・ライブラリ・フォルダ

ファイルとストレージの制限

項目制限値備考
ファイルサイズ250GB個別ファイルのアップロード上限
URLパスの長さ400文字フォルダパス+ファイル名
サイトコレクションのストレージ25TBこの値を超えると読み取り専用
OneDrive同期の推奨上限10万ファイルパフォーマンスを保つため
OneDrive同期の最大上限30万ファイル性能が低下

サイトとリストの数の制限

項目制限値備考
サイトコレクションあたりのリスト・ライブラリ数2000個サブサイトを含む
サイトコレクション数200万個テナントあたり
ハブサイト数2000個組織あたり

リストビューしきい値の影響

5000件を超えると、さまざまな問題が発生します。

ユーザーへの影響

1. リストが表示できない

エラーメッセージ:

リストビューのしきい値を超えているため、
この操作を実行できません。

5000件を超えるビューを開こうとすると、このエラーが表示されます。

2. 並び替えができない

5000件を超えるリストでは:

  • 列をクリックして並び替えできない
  • フィルターが効かない
  • グループ化ができない

3. 検索が制限される

リスト内の検索が:

  • 遅くなる
  • 結果が制限される
  • タイムアウトする

4. 操作が遅くなる

  • ページの読み込みが遅い
  • データの更新に時間がかかる
  • ファイルのアップロードが遅い

管理者への影響

1. 列の操作ができない

5000件を超えると、以下の操作がブロックされます:

  • 列の追加・削除・更新
  • 列インデックスの管理
  • 列の設定変更

2. リストの管理ができない

  • リストの削除ができない
  • サイトの削除ができない
  • データ付きでテンプレート保存できない

3. ビューの設定が制限される

  • 合計の表示ができない
  • 添付ファイルの有効化・無効化ができない
  • 複雑なビューの作成ができない

4. 権限の管理が困難

10万件を超えるリスト・ライブラリ・フォルダでは:

  • 権限の継承を解除できない
  • 権限を再継承できない
  • 固有の権限を設定できない

Power AppsとPower Automateへの影響

Power Apps

  • リストが5000件を超えると、アプリが動かなくなる
  • Filter関数やLookUp関数が使えなくなる
  • データの取得でエラーが発生

Power Automate

  • フローが実行できなくなる
  • データの取得でタイムアウト
  • 一括処理ができなくなる

これらのツールは、SharePointリストをデータソースとして使います。
5000件問題は、これらのツールにも直接影響します。

5000件問題の対策方法

5000件を超えても快適に使うための対策を紹介します。

対策1: 列インデックスを作成する

最も効果的な対策

列インデックスを作成すると、5000件を超えても操作できるようになります。

列インデックスとは
データベースの索引のようなもので、検索を高速化します。

作成方法

  1. リストの「設定」→「リストの設定」をクリック
  2. 「インデックス付きの列」をクリック
  3. 「新しいインデックスの作成」をクリック
  4. インデックスを付けたい列を選択
  5. 「作成」をクリック

インデックスを付けるべき列

  • フィルターで使う列
  • 並び替えで使う列
  • ビューの条件で使う列
  • Power Appsで使う列(Filter、LookUpなど)

例: 日付列にインデックス
「作成日」列にインデックスを付けると:

  • 「今月のアイテム」ビューが高速化
  • 「最近30日間」のフィルターが使える
  • 日付での並び替えが可能

制限

  • リストあたり最大20個のインデックス
  • すべての列にインデックスを付けると逆効果
  • 必要な列だけにインデックスを付ける

注意点

  • インデックス作成には時間がかかる(大規模リストの場合)
  • 20000件を超えるリストでは、バックグラウンドで作成される
  • 「インデックス作成中」と表示されることがある

対策2: フィルター付きビューを作成する

インデックス列を使ったフィルタリング

インデックスを付けた列でフィルターすることで、5000件以下に絞り込めます。

作成方法

  1. 「列の追加」で必要な列を追加
  2. その列にインデックスを作成
  3. 「ビュー」→「ビューの作成」をクリック
  4. フィルター条件を設定
  • インデックス付き列を最初の条件にする
  • 結果が5000件以下になるように設定
  1. 「作成」をクリック

例: 担当者別ビュー

フィルター条件:
担当者 = [Me] (自分)

このビューは、自分が担当者のアイテムのみ表示します。
通常、1人あたりのアイテムは5000件以下になります。

例: 今年のアイテムビュー

フィルター条件:
作成日 >= 2024/01/01

今年作成されたアイテムのみ表示します。

フィルター条件の設定ポイント

  • AND条件を使う: OR条件は全アイテムを取得してからフィルターするため効果が薄い
  • インデックス列を最初に: 最初の条件で大きく絞り込む
  • 複数条件を組み合わせる: さらに絞り込める

対策3: フォルダで分割する

フォルダごとに5000件以下に保つ

フォルダを作成し、アイテムを分散させます。

メリット

  • フォルダごとにしきい値が適用される
  • 各フォルダが5000件以下なら問題ない
  • 直感的で分かりやすい

例: 年度別フォルダ

/2022年度 (4800件)
/2023年度 (4900件)
/2024年度 (3200件)

合計12900件ですが、各フォルダは5000件以下なので問題ありません。

例: 部門別フォルダ

/営業部 (2100件)
/技術部 (1800件)
/管理部 (900件)

フォルダ作成の有効化

カスタムリストでは、デフォルトでフォルダが無効です。

  1. 「設定」→「リストの設定」をクリック
  2. 「詳細設定」をクリック
  3. 「”新しいフォルダー”コマンドを表示する」「はい」に変更
  4. 「OK」をクリック

注意点

  • フォルダが多すぎると管理が煩雑
  • ユーザーが正しいフォルダに保存する必要がある
  • フォルダ外にアイテムを置かない

対策4: 複数のリストに分割する

リスト自体を分ける

用途や期間でリストを分割します。

例: 年度別リスト

  • 2022年度タスクリスト
  • 2023年度タスクリスト
  • 2024年度タスクリスト

例: ステータス別リスト

  • 進行中タスクリスト
  • 完了済みタスクリスト

メリット

  • 各リストが5000件以下に保たれる
  • パフォーマンスが向上
  • 目的別に整理できる

デメリット

  • 管理するリストが増える
  • 横断的な検索が難しい
  • リスト間の移動が手作業

対策5: 古いデータを削除する

定期的にデータを整理

一定期間経過したアイテムを削除し、5000件以下に保ちます。

方法1: SharePointの情報管理ポリシー(SharePoint Serverのみ)

  1. 「設定」→「リストの設定」をクリック
  2. 「情報管理ポリシー」をクリック
  3. 「ポリシーソースの変更」をクリック
  4. 「ライブラリとフォルダー」にチェック
  5. 「保持ステージを追加する」をクリック
  6. 削除条件を設定
  • 例: 作成日から365日後に削除
  1. 「OK」をクリック

注意: テスト環境では利用できない場合があります。

方法2: Power Automateで自動削除

自動削除フローを作成します。

  1. Power Automateで新しいフローを作成
  2. トリガー: 「スケジュール済み」(例: 毎日午前2時)
  3. アクション: 「SharePointアイテムの取得」
  • フィルター: 作成日が1年以上前
  1. アクション: 「Apply to each」
  2. アクション: 「SharePointアイテムの削除」

メリット

  • 自動で削除される
  • 忘れずに実行される
  • 複数のリストに対応可能

注意点

  • 削除されたデータは復元できない(ごみ箱から復元可能な期間のみ)
  • 必要なデータを削除しないよう注意
  • ユーザーが利用していない時間帯に実行

削除の代わりにアーカイブ

  • 別のリストに移動
  • SharePoint Onlineのアーカイブ機能を使用
  • データを保持しつつ、メインリストを軽量化

対策6: モダンエクスペリエンスを使う

クラシックからモダンへ

SharePointのモダンエクスペリエンスは、大規模リストの扱いが改善されています。

モダンの特徴

  • 自動的に列インデックスを作成
  • スクロールに応じて段階的に読み込み
  • パフォーマンスが向上

自動インデックス作成
ユーザーが並び替えやフィルターを行うと:

  • 自動的にその列にインデックスが作成される
  • 20000件以下のリストで有効
  • 20000件を超えるとバックグラウンドで作成

段階的読み込み

  • 最初に表示される分だけ読み込む
  • スクロールに応じて追加読み込み
  • すべてを一度に読み込まない

モダンへの切り替え

  1. リストの「設定」→「リストの設定」をクリック
  2. 「詳細設定」をクリック
  3. 「リストエクスペリエンス」「新しいエクスペリエンス」を選択
  4. 「OK」をクリック

対策7: ページング(ページ分割)を活用する

表示を分割する

ビューの設定で、1ページあたりの表示件数を制限します。

設定方法

  1. ビューの編集画面を開く
  2. 「アイテム制限」セクション
  3. 「表示するアイテム数」を設定(例: 30件)
  4. 「ページ単位で表示する」にチェック
  5. 「OK」をクリック

効果

  • 一度に表示されるアイテムが少ない
  • ページの読み込みが速い
  • ユーザーがページを移動して閲覧

推奨設定

  • デフォルト: 30件
  • 最大: 100件程度
  • 少なすぎるとページ移動が面倒

SharePoint Onlineとオンプレミスの違い

SharePoint OnlineとSharePoint Serverでは、制限の扱いが異なります。

SharePoint Online

特徴

  • マルチテナント環境
  • Microsoftが管理
  • 他のテナントと共有

制限

  • リストビューしきい値: 5000件(変更不可)
  • 管理者でも変更できない
  • Daily Time Window(無制限時間帯)がない

理由
他のテナントのパフォーマンスを守るため、Microsoftが制限を固定しています。

SharePoint Server(オンプレミス)

特徴

  • 自社サーバーで運用
  • 管理者が制御
  • 専用環境

制限

  • リストビューしきい値: 5000件(変更可能)
  • 管理者が中央管理サイトから変更できる
  • Daily Time Windowを設定できる

Daily Time Window
すべてのユーザーが無制限に操作できる時間帯を設定できます。

設定例

  • 平日 22:00 ~ 翌6:00
  • 週末 終日

この時間帯は:

  • リストビューしきい値が無効
  • 大規模な操作が可能
  • パフォーマンスへの影響を最小化

しきい値の変更方法

  1. 中央管理サイトにログイン
  2. 「アプリケーション管理」→「Webアプリケーションの管理」
  3. 対象のWebアプリケーションを選択
  4. 「全般設定」→「リソースの調整」
  5. 「リストビューしきい値」の値を変更
  6. 「OK」をクリック

注意
しきい値を上げすぎると:

  • システム全体のパフォーマンスが低下
  • 他のユーザーに影響
  • サーバーダウンのリスク

推奨: むやみに上げない、必要最小限に

どちらを使うべきか

要件推奨
クラウドで手軽に使いたいSharePoint Online
厳格なデータ管理が必要SharePoint Server
独自の制限設定が必要SharePoint Server
管理負担を減らしたいSharePoint Online
大規模データを頻繁に処理SharePoint Server

ベストプラクティス

SharePointリストを効果的に使うためのベストプラクティスです。

設計段階でのベストプラクティス

1. 最初から構造を考える

  • どのくらいのデータ量になるか予測
  • 5000件を超えそうなら対策を計画
  • フォルダ構造やビューを設計

2. インデックス列を最初に決める

  • フィルターで使う列を特定
  • 最初からインデックスを作成
  • 後から追加すると時間がかかる

3. 命名規則を統一する

  • フォルダ名: 「2024年度」「営業部」など
  • ビュー名: 「自分のタスク」「期限切れ」など
  • 列名: 英語推奨(Power Platform連携を考慮)

4. 用途に応じてリストを分ける

  • 長期保存データと一時データを分離
  • アクティブデータとアーカイブを分離
  • 部門ごと、プロジェクトごとに分離

運用段階でのベストプラクティス

1. 定期的にデータを見直す

  • 月次: 不要なアイテムを削除
  • 四半期: データの整理とアーカイブ
  • 年次: リスト構造を見直し

2. パフォーマンスをモニタリング

  • アイテム数を確認
  • ユーザーからのフィードバックを収集
  • 遅いと感じたら対策を実施

3. ユーザーを教育する

  • 正しいフォルダに保存するよう周知
  • 不要なデータは削除するよう促す
  • ビューの使い方を教える

4. 適切なビューを提供する

  • ユーザーの用途に合わせたビューを作成
  • デフォルトビューは最もよく使うものに
  • 複数のビューを用意して選択肢を増やす

やってはいけないこと

1. すべての列にインデックスを付ける

  • 逆効果になる
  • 必要な列だけに限定

2. フィルターなしで大規模リストを表示

  • 必ずフィルターを適用
  • 「すべてのアイテム」ビューを避ける

3. フォルダを使わず平坦に保存

  • 数千件を1つのフォルダに入れない
  • 適切に分散させる

4. OR条件を多用する

  • AND条件を使う
  • OR条件は全件取得後にフィルター

5. 古いデータを放置する

  • 定期的に削除またはアーカイブ
  • データの肥大化を防ぐ

6. クラシックエクスペリエンスを使い続ける

  • モダンエクスペリエンスに移行
  • パフォーマンスが向上

トラブルシューティング

よくある問題と解決方法です。

問題1: 「リストビューのしきい値を超えています」エラー

症状
リストを開くとエラーメッセージが表示され、データが見られない。

原因
ビューが5000件以上のアイテムを取得しようとしている。

解決方法

方法A: フィルター付きビューを使う

  1. 既存のフィルター付きビューに切り替える
  2. なければ新規作成(インデックス列でフィルター)

方法B: 列インデックスを作成

  1. よく使う列にインデックスを作成
  2. そのセクションで説明した手順に従う

方法C: フォルダを開く

  1. 個別のフォルダを開く
  2. 各フォルダは5000件以下に保つ

問題2: 並び替えができない

症状
列をクリックしても並び替えができない。

原因
並び替えようとしている列にインデックスがない。

解決方法

  1. その列にインデックスを作成
  2. モダンエクスペリエンスを使用(自動インデックス作成)

問題3: Power Appsが動かなくなった

症状
ある日突然、Power Appsのアプリがエラーを表示して動かない。

原因
SharePointリストが5000件を超えた。

解決方法

  1. Filter、LookUp、SortByColumnsで使う列にインデックスを作成
  2. データを5000件以下に減らす(削除またはアーカイブ)
  3. Dataverse for Teamsへの移行を検討

問題4: インデックスが作成できない

症状
「インデックス付きの列」で新しいインデックスを作成できない。

原因
既に20個のインデックスが作成されている。

解決方法

  1. 不要なインデックスを削除
  2. 本当に必要な列だけにインデックスを付ける

問題5: フィルター付きビューでもエラーが出る

症状
フィルター条件を設定したのに、まだエラーが出る。

原因

  • フィルター条件の最初にインデックス列を使っていない
  • OR条件を使っている
  • フィルター結果が5000件を超えている

解決方法

  1. 最初の条件をインデックス付き列にする
  2. OR条件をAND条件に変更
  3. フィルター条件をさらに厳しくして結果を5000件以下にする

問題6: OneDrive同期が遅い・止まる

症状
OneDriveの同期が非常に遅い、または止まってしまう。

原因
同期しようとしているファイル数が多すぎる(10万件以上)。

解決方法

  1. 同期するフォルダを選択する(すべてを同期しない)
  2. 不要なファイルを削除
  3. ファイルを複数のライブラリに分散

まとめ

SharePointリストの上限について、重要なポイントをまとめます。

この記事のポイント

  • SharePointリストには2種類の上限がある
  • 保存上限: 3000万件
  • 表示・処理上限: 5000件
  • リストビューしきい値は5000件(SharePoint Onlineでは変更不可)
  • 5000件を超えると、表示・並び替え・フィルターができなくなる
  • 原因はSQL Serverのデータベース保護のため
  • 対策は複数ある:
  • 列インデックスの作成(最も効果的)
  • フィルター付きビューの使用
  • フォルダでの分割
  • 複数リストへの分割
  • 古いデータの削除
  • モダンエクスペリエンスの利用
  • SharePoint Onlineではしきい値を変更できない
  • SharePoint Serverでは管理者が変更可能(推奨しない)
  • 設計段階から対策を考えることが重要

対策の優先順位

  1. 列インデックスの作成: 最も効果的、必ず実施
  2. フィルター付きビューの作成: インデックスと組み合わせる
  3. フォルダでの分割: 直感的で管理しやすい
  4. モダンエクスペリエンスの利用: 自動インデックス作成
  5. 古いデータの削除: 定期的に実施
  6. 複数リストへの分割: 他の方法で解決しない場合

やるべきこと

すぐに実施:

  • 現在のリストのアイテム数を確認
  • 5000件に近づいているリストを特定
  • よく使う列にインデックスを作成

計画的に実施:

  • フィルター付きビューを設計
  • フォルダ構造を計画
  • データの削除・アーカイブルールを決定

継続的に実施:

  • 定期的なデータ見直し
  • パフォーマンスのモニタリング
  • ユーザー教育

最後に

SharePointリストの5000件問題は、理解すれば恐れることはありません。
適切な対策を実施すれば、数万件、数十万件のデータでも快適に扱えます。

重要なのは、設計段階から対策を考えること。
後から対処するより、最初から適切な構造を作ることが大切です。

この記事の知識を活用して、SharePointリストを効果的に使いこなしましょう。

参考情報

本記事は以下の公式ドキュメントおよび信頼できる情報源を参考に作成しました。

コメント

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