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

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

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

パフォーマンス上の考慮事項
パネル内の各ドロップダウンは、選択肢を読み込むときに SharePoint へ 1 回の要求を送信します。カスケード フィルターを使用しない場合、これはページを表示するたびに 1 回だけ発生します。カスケード フィルターを使用する場合は、パネル内のいずれかのコントロールで変更があるたびに、他のすべてのドロップダウンの選択肢が再読み込みされるため、4 つのドロップダウンがあるパネルでは、1 回の選択につき 3 件の要求が送信されます。応答は最新の要求と照合されるため、以前の選択に対する遅い応答が現在の選択肢を上書きすることはありません。
数千アイテム程度のリストでは、この影響はほとんど感じられません。大規模なリストでは、次の 2 点が有効です。
- パネル内のドロップダウン コントロールの数を少なく保ちます。実際に相互に依存する列をここに配置し、それ以外には他のコントロールを使用します。
- パネルで使用する列にインデックスを作成します。5,000 アイテムを超えるリストでは、列コンフィギュレーターは、選択した列のうちインデックスのないものすべてに「列にインデックスがありません。この列で大規模なリストをフィルター処理すると、機能しない場合があります。」という警告を表示し、その横に インデックスの作成ボタンを表示します。絞り込まれた選択肢を読み込む要求にも、結果のクエリと同じリスト ビューのしきい値が適用されます。
💡 ヒント
List Filter Online がリスト ビューのしきい値を超えるリストをどのように処理するか、またどの列にインデックスを作成すべきかについては、KB10257. 大規模リストのフィルター処理: インデックス付き列と 5,000 アイテムのしきい値で説明しています。
制限事項
❗ 重要
カスケード フィルターが絞り込むのは、ドロップダウン コントロールと ドロップダウン (複数の値) コントロールの選択肢のみです。用語ピッカーやユーザー ピッカーの選択肢は絞り込まれず、他のフィルターが変更されても、スライダーや数値範囲コントロールの範囲は再計算されません。
❗ 重要
選択した値は、絞り込んだ結果に含まれなくなっても、選択状態と表示が維持されます。この組み合わせによって結果が空になることがあります。選択を変更するか、フィルターをクリアしてください。