ADVERTISEMENT

【SharePoint】ビューのフィルターが5,000件制限に引っかかる時の整理方法

【SharePoint】ビューのフィルターが5,000件制限に引っかかる時の整理方法
🛡️ 超解決

SharePoint OnlineやオンプレミスのShareServerでリストやライブラリを利用していると、「表示するアイテムが多すぎます」というエラーが表示されることがあります。これはSharePointの「リストビューのしきい値」と呼ばれる5,000件制限に起因します。この制限は、大量データを扱う際のパフォーマンス低下を防ぐために設けられています。本記事では、ビューのフィルターで5,000件制限に引っかかる原因の特定方法と、実際に整理・回避するための具体的な手順を解説します。初心者の方でも実践できるように、操作手順や判断基準を詳しく紹介します。

【要点】この記事で確認すること

  • 最初に見る場所: 該当リストまたはライブラリのアイテム総数と、ビューで使用しているフィルター条件(どの列でフィルターしているか)
  • 切り分けの軸: アイテム数が5,000を超えているか、フィルター列にインデックスが設定されているか、フィルター条件が複雑すぎないか
  • 注意点: 会社PCではSharePoint管理センターの設定を変更する権限がない場合が多いため、インデックス追加やしきい値変更は管理者に依頼してください。自分で勝手にしきい値を変更するとパフォーマンス問題を引き起こす可能性があります。

ADVERTISEMENT

1. 5,000件制限の仕組みと発生条件

SharePointには「リストビューのしきい値(List View Threshold)」という制限が設定されており、デフォルトでは5,000件です。これは、1回のデータベースクエリで取得できるアイテム数の上限です。ビューでフィルターや並べ替えを実行すると、その条件に合致するアイテム数が5,000を超える場合に制限がかかり、エラーが表示されます。ただし、インデックスが設定された列でフィルターをかけると、その列のインデックスが利用されて効率的にクエリが実行されるため、5,000件を超えても正常に表示できる場合があります。制限が発生する主な状況は以下のとおりです。

制限が発生する具体的な状況

  • リストのアイテム総数が5,000件を超えており、かつフィルターに使用している列にインデックスが設定されていない場合
  • アイテム数が5,000件未満でも、フィルター条件が複数の列にまたがる複雑なクエリでサブクエリが発生する場合
  • リスト内のアイテム数が増加するにつれて、既存のビューが突然エラーを表示するようになった場合(以前は問題なかったが、データ蓄積により制限を超えた)

制限を回避できるケースとできないケース

ケース 回避可能か 理由
フィルター列にインデックスが設定されている 可能 インデックスによりクエリが最適化されるため
アイテム総数が5,000件未満 可能 そもそも制限対象外
フィルター条件が単一列で、該当アイテムが5,000件未満 可能 条件に合致するアイテム数が制限以下
フィルター列にインデックスなし、アイテム総数5,000超 不可(そのままでは) インデックス追加やリスト分割などの対策が必要
お探しの解決策が見つからない場合は、こちらの「Teams/Outlookトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

2. 制限に引っかかっているか確認する手順

まずは、現在のビューが本当に5,000件制限に引っかかっているのか、原因を特定するために以下の手順を実行します。

  1. 問題が発生しているビューを開き、エラーメッセージを確認します。典型的には「表示するアイテムが多すぎます。リストビューのしきい値を超えています。」といった内容が表示されます。
  2. リスト設定を開き、「詳細設定」から「リストビューのしきい値」の現在値を確認します。SharePoint Onlineでは既定で5,000になっています。
  3. リストのアイテム総数を確認します。リスト設定の「詳細設定」画面に「アイテム数」として表示されます。または、ビューの下部に件数が表示されることもあります。
  4. 該当ビューのフィルター条件を確認します。ビューの編集画面で、どの列にどのようなフィルターが設定されているかをメモします。
  5. フィルターで使用している列にインデックスが設定されているか確認します。リスト設定の「インデックス付き列」の一覧を開き、該当列が含まれているか確認します。
  6. テストとして、フィルターを解除した状態でビューを表示し、エラーが出ないか確認します。フィルターなしで表示できれば、フィルター条件が原因である可能性が高いです。

3. ビューのフィルターを整理する3つのアプローチ

原因が特定できたら、以下の3つのアプローチから適切な対策を選択します。状況に応じて組み合わせることも有効です。

アプローチ1:列のインデックスを追加する

最も推奨される方法です。フィルターに使っている列にインデックスを追加することで、クエリが効率的になり、5,000件を超えても問題なく表示できるようになります。ただし、インデックス追加には管理者権限が必要です。以下の手順で行います。

  1. 該当リストの設定画面を開きます。
  2. 「インデックス付き列」をクリックします。
  3. 「新しいインデックスの作成」を選択し、フィルターでよく使う列(例:「作成日時」「ステータス」など)を1つ選択します。
  4. 保存後、タイマージョブによってインデックスが作成されるまで待ちます(通常数分~数時間)。
  5. インデックスが作成されたら、ビューのフィルターを再実行してエラーが解消されたか確認します。

アプローチ2:フィルター条件を絞り込む

インデックスを追加できない場合や、急ぎで対応したい場合に有効です。フィルター条件をより限定的にすることで、該当アイテム数を5,000件未満に減らします。例えば、「作成日時」フィルターを「過去30日間」から「過去7日間」に狭めたり、ステータス列を「完了」のみに限定したりします。この方法は一時的な回避策として適しています。

アプローチ3:リストを分割・アーカイブする

リスト全体のアイテム数が常に5,000件を超える場合は、データを複数のリストに分割するか、古いアイテムをアーカイブリストに移動することを検討します。例えば、年別やカテゴリ別にリストを分けると、各リストのアイテム数が制限以内に収まります。また、SharePointの「アイテムの有効期限」機能を使って自動的にアーカイブする方法もあります。ただし、分割後はビューの設定を再作成する必要があるため、手間がかかります。

ADVERTISEMENT

4. 状況別の比較表で最適な方法を選ぶ

以下の表を参考に、現在の状況に最も適した対策を選んでください。

方法 概要 メリット デメリット 適した状況
インデックス追加 フィルター列にインデックスを設定 既存のビューがそのまま使える。恒久的な対策 管理者権限が必要。インデックス作成に時間がかかる。インデックス数に上限あり アイテム数が5,000~50,000程度で、フィルター列が明確な場合
フィルター絞り込み フィルター条件を厳しくして該当件数を減らす すぐに実行できる。権限不要 必要なデータが見えなくなる可能性。一時しのぎ 緊急対応や、利用者が自分で調整できる場合
リスト分割 データを複数のリストに分散 根本的な解決になる。リストごとに管理しやすい 既存のビューが使えなくなる。移行作業が大規模 アイテム数が常に10万件を超えるなど、大量データの場合

5. よくある失敗パターンと回避策

実際に作業を進める際に陥りやすいミスとその対策を紹介します。

  • 失敗1:すべての列にインデックスを追加しようとする。 SharePointでは1つのリストに追加できるインデックス数に制限があります(SharePoint Onlineでは20個まで)。また、インデックスが多すぎると書き込みパフォーマンスが低下します。対策として、フィルターで実際に使われる列だけに絞ってインデックスを追加してください。
  • 失敗2:フィルター条件を増やしすぎて逆に表示されなくなる。 複数の条件をANDで結合すると、該当件数が0件になる場合があります。対策として、条件を1つずつ追加しながら結果を確認し、必要なデータが表示される範囲に調整します。
  • 失敗3:リスト分割後に元のビュー設定が引き継がれない。 リストを分割すると、元のビューのフィルターや並べ替えは新しいリストにはコピーされません。対策として、分割前にビューの設定をメモしておき、新しいリストで同じビューを再作成します。
  • 失敗4:インデックス追加後すぐに効果を期待する。 インデックスはタイマージョブによって非同期で作成されるため、反映までに時間がかかります。対策として、インデックス追加後は数時間待ってから効果を確認しましょう。

6. 管理者に確認すべき設定と質問ポイント

一般ユーザーでは変更できない設定もあるため、管理者に依頼する際に確認すべき項目をまとめます。

  • リストビューのしきい値の現在値と変更の可否:デフォルトは5,000ですが、組織の設定で変更されている可能性があります。変更する場合は管理者権限が必要で、パフォーマンスへの影響を考慮する必要があります。
  • インデックスの作成状況:インデックスが正常に作成されているか、タイマージョブの状態を確認してもらいます。
  • サーバーリソースの状況:大量のインデックスやしきい値の引き上げがサーバーに負荷をかけないか、事前に相談します。

管理者への質問例:「該当リストのフィルター列にインデックスを追加しても問題ないですか?」「しきい値を一時的に10,000に変更することは可能ですか?その場合のリスクは何ですか?」

7. まとめ

SharePointの5,000件制限(リストビューのしきい値)は、大量データのパフォーマンスを守るために不可欠な仕組みです。制限に引っかかった場合は、まず原因を特定し、インデックス追加、フィルター絞り込み、リスト分割のいずれかを選択して対処します。インデックス追加が最も恒久的な解決策ですが、管理者権限が必要です。フィルター絞り込みは即効性がありますが一時的な回避策です。リスト分割は大規模データに適していますが、移行作業が発生します。それぞれのメリット・デメリットを理解した上で、自社の環境に合った方法を選びましょう。


👥
Teams/Outlookトラブル完全解決データベース サインイン、接続エラー、メール送受信の不具合など、特有のトラブル解決策を網羅。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
🌐

超解決 リモートワーク研究班

Microsoft 365の導入・保守を専門とするエンジニアグループ。通信障害やサインイン不具合など、ビジネスインフラのトラブル対応に精通しています。

ADVERTISEMENT