はじめに
ドロップダウン フィルターの使いやすさは、表示される値の一覧しだいです。十数個の部署にまたがる数百件のプロジェクトがあるリストでは、ユーザーがすでに部署を選択した後でも、フィルター パネルの Project(プロジェクト)ドロップダウンにはリスト内のすべてのプロジェクトが表示されます。その大半は結果が空のテーブルになるため、ユーザーは該当するわずかな項目を探してスクロールしなければなりません。
List Filter Online Web パーツの Cascading filters(カスケード フィルター)オプションは、この問題を解決します。このオプションをオンにすると、各ドロップダウン コントロールには、パネルで現在選択されている他のフィルターに一致するアイテムに存在する値だけが表示されます。Department(部署)で Marketing を選択すると、Project にはマーケティング部門のプロジェクトだけが表示されます。この記事では、このオプションの機能、有効にする方法、日常的な使用時の動作、および制限事項について説明します。

カスケード フィルターの機能
このオプションは、リストから選択肢を読み込む 2 つのフィルター コントロール、Dropdown と Dropdown (Multiple Values) に影響します。カスケード フィルターがオフの場合、これらのコントロールはそれぞれ、フィルター パネルが開いたときに列の個別の値を 1 回だけ読み込み、ページが再読み込みされるかユーザーが別のフォルダーに移動するまで、一覧は変わりません。
カスケード フィルターがオンの場合、Web パーツはパネル内の他のコントロールで行われた選択を、個別の値を読み込む要求に渡します。すると SharePoint は、それらの選択を満たすアイテムに存在する値のみを返します。コントロール自身の選択は要求に含まれないため、ドロップダウンが自分自身を絞り込むことはありません。選択した部署内で、あるプロジェクトから別のプロジェクトにいつでも切り替えられます。
テキスト ボックス、日付および日付範囲コントロール、数値範囲とスライダー、ユーザー ピッカー、用語ピッカー、Yes/No トグル、添付ファイル フィルターなど、値の一覧を読み込まないコントロールは、このオプションの影響を受けません。ただし、これらも絞り込みには関与します。ドロップダウンの選択肢が再読み込みされるときには、パネルで選択した Yes/No の値や入力したテキストが、ドロップダウンの選択内容とともに渡されます。
📝 注
列ヘッダーのコンテキスト メニューに表示される値は、カスケード フィルターのオン/オフにかかわらず、常にアクティブな他のフィルターによって絞り込まれます。このオプションが制御するのは、フィルター パネルの動作のみです。
オプションの有効化
- ページを編集し、List Filter Online Web パーツのプロパティ ペインを開きます。
- Filter pane(フィルター パネル)グループを展開します。
- Filter pane トグルがオンになっていることを確認します。パネル自体がオフの間は、Cascading filters トグルは無効になります。
- Cascading filters をオンにします。
- トグルの下にある列コンフィギュレーターで、相互に依存させたい列に Dropdown コントロールまたは Dropdown (Multiple Values) コントロールを割り当てます。
- ページを再発行します。
このオプションは既定ではオフで、Web パーツのプロパティに保存されるため、ページのすべての訪問者に適用されます。

シナリオ例
プロジェクト台帳に、Department、Project、Status(状態)という 3 つの選択肢列があるとします。3 つともフィルター パネルに配置されており、最初の 2 つは Dropdown、3 つ目は Dropdown (Multiple Values) です。カスケード フィルターはオンになっています。
- ユーザーがページを開きます。まだ何も選択されていないため、すべてのドロップダウンに、その列のすべての値が表示されます。
- ユーザーが Department で Marketing を選択します。Project と Status のコントロールは選択肢を再読み込みします。Project にはマーケティング部門のプロジェクトのみが、Status にはマーケティング部門のプロジェクトに存在する状態のみが表示されます。
- ユーザーが Project で Website relaunch を選択します。Status が再び再読み込みされ、そのプロジェクトだけの状態が表示されます。Department も再読み込みされますが、そのプロジェクトが属する部署は Marketing のみであるため、表示されるのは Marketing だけです。
- ユーザーが Status で Active と On hold を選択し、Apply Filter(フィルターの適用)をクリックします。結果テーブルに一致するアイテムが表示され、その上に 3 つのフィルター チップが表示されます。
ユーザーは、Status から始めて部署を絞り込むこともできます。選択を行う順序は関係ありません。
動作の詳細
絞り込みは Apply の前から始まります。 選択肢は、Apply Filter をクリックしたときではなく、他のコントロールで選択が行われた時点で再読み込みされます。これにより、ユーザーは組み合わせ全体を先に組み立ててから、1 回で適用できます。
順序に依存しません。 どのコントロールを先に操作したかにかかわらず、すべてのドロップダウンは、パネル内の他のすべての選択によって絞り込まれます。
クリア。 Clear Filter(フィルターのクリア)はすべてのコントロールをリセットし、結果からフィルターを削除します。選択が残らないため、すべてのドロップダウンが値の完全な一覧を再読み込みします。
フィルター チップ。 結果の上にある個別のチップを削除すると、その条件が結果テーブルから削除されます。この変更はフィルター パネルには通知されません。コントロールは選択を保持したままで、他のドロップダウンは、ユーザーがそのコントロールで別の値を選択するか Clear Filter をクリックするまで、その選択によって絞り込まれたままになります。
フィルターの他の取得元。 絞り込みに関与するのは、パネルで行われた選択のみです。フィルター リンク、保存済みのプリセット、またはユーザーの前回の訪問から復元されたフィルターや、列ヘッダーから適用されたフィルターは、結果を制限しますが、ドロップダウンの選択肢は絞り込みません。
フォルダー。 Web パーツがフォルダーの内容を表示している場合、個別の値はそのフォルダーとそのサブフォルダーから読み込まれ、ユーザーが別のフォルダーに移動するたびに選択肢が再読み込みされます。
事前定義フィルター。 ページ作成者が Filter グループのクエリ ビルダーで定義したフィルターは、結果テーブルを制限しますが、ドロップダウンの選択肢を読み込むときには適用されません。そのため、ドロップダウンに事前定義フィルターで除外される値が表示されることがあります。その値を選択すると、単に結果が 0 件になります。
条件の種類。 絞り込みは、正確な値として SharePoint に渡されます。ドロップダウン、複数値ドロップダウン、Yes/No トグルの選択は、完全一致で照合されます。日付範囲や数値範囲、部分的なテキストなど、その他の種類の条件は、入力された値としてそのまま渡されるため、結果テーブルよりも選択肢のほうが厳密に絞り込まれることがあります。Contains data(データを含む)や Does not contain data(データを含まない)のように値を持たない条件は、選択肢の読み込み時には無視されます。

パフォーマンス上の考慮事項
パネル内の各ドロップダウンは、選択肢を読み込むときに SharePoint へ 1 回の要求を送信します。カスケード フィルターを使用しない場合、これはページを表示するたびに 1 回だけ発生します。カスケード フィルターを使用する場合は、パネル内のいずれかのコントロールで変更があるたびに、他のすべてのドロップダウンの選択肢が再読み込みされるため、4 つのドロップダウンがあるパネルでは、1 回の選択につき 3 件の要求が送信されます。応答は最新の要求と照合されるため、以前の選択に対する遅い応答が現在の選択肢を上書きすることはありません。
数千アイテム程度のリストでは、この影響はほとんど感じられません。大規模なリストでは、次の 2 点が有効です。
- パネル内のドロップダウン コントロールの数を少なく保ちます。実際に相互に依存する列をここに配置し、それ以外には他のコントロールを使用します。
- パネルで使用する列にインデックスを作成します。5,000 アイテムを超えるリストでは、列コンフィギュレーターは、選択した列のうちインデックスのないものすべてに「The column is not indexed. Filtering a large list by this column may not work.」(列にインデックスが設定されていません。この列で大規模リストをフィルター処理すると、機能しない場合があります。)という警告を表示し、その横に Create Index(インデックスの作成)ボタンを表示します。絞り込まれた選択肢を読み込む要求にも、結果のクエリと同じリスト ビューのしきい値が適用されます。
💡 ヒント
List Filter Online がリスト ビューのしきい値を超えるリストをどのように処理するか、またどの列にインデックスを作成すべきかについては、KB10257. 大規模リストのフィルター処理: インデックス付き列と 5,000 アイテムのしきい値で説明しています。
制限事項
❗ 重要
カスケード フィルターが絞り込むのは、Dropdown コントロールと Dropdown (Multiple Values) コントロールの選択肢のみです。用語ピッカーやユーザー ピッカーの選択肢は絞り込まれず、他のフィルターが変更されても、スライダーや数値範囲コントロールの範囲は再計算されません。
❗ 重要
ドロップダウンで選択した値は、別のコントロールでの変更によって絞り込まれた選択肢から消えても、選択されたままになります。その条件は Apply Filter が送信するフィルターに含まれ続けるため、結果テーブルが空になることがあります。このような組み合わせを解消するには、値を選択し直すか、Clear Filter をクリックしてください。
関連記事
💡 ヒント
フィルター パネルのすべてのコントロール、それぞれがサポートするフィールドの種類、および取り得るサイズは、KB10255. List Filter Online のフィルター パネル コントロールとサポートされる列の種類に一覧があります。データ ソースやフィルター パネルを含む Web パーツの全般的な構成については、KB10201. List Filter Online Web パーツの構成で説明しています。