はじめに
Power BIを使ったレポート作成では、視覚的にわかりやすいビジュアルやスライサーを配置し、それらを相互に連動させてデータを絞り込むのが一般的な使い方です。ですが、時には「このグラフだけはフィルターの影響を受けさせたくない」「一部のビジュアルだけは特定の条件に左右されないようにしたい」というニーズが発生します。
こうした要望に応えるためには、Power BIの「編集インタラクション」機能や、場合によってはDAX(関数ALLなど)を駆使するテクニックを知っておくと便利です。そこで本記事では、以下を中心に解説していきます。
-
Power BIの「編集インタラクション」機能を使ったフィルター連動の制御
-
DAXを用いたフィルター無効化(特定のビジュアルだけ全体集計を見せたい場合など)
-
フィルターを連動させない場合の注意点・設計上のポイント
分かりやすさを重視してステップごとに紹介しますので、ぜひご一読ください。
1. Power BIにおけるフィルター連動の基本
1-1. デフォルト動作:クロスフィルター/クロスハイライト
Power BIでスライサーやグラフなどのビジュアルを配置すると、基本的には互いがクロスフィルターまたはクロスハイライトという形で連動します。たとえば、
この「全体連動」はPower BIの大きな強みですが、前述のように意図的に連動させたくない場合もあります。そこで役立つのが**編集インタラクション(Edit Interactions)**機能です。
1-2. レポートレベル / ページレベル / ビジュアルレベル フィルターとの関係
Power BIには「レポートレベル」「ページレベル」「ビジュアルレベル」の3種類のフィルターがあります。通常、スライサーはページレベルのフィルターをかける役割を果たし、レポート上の同じページ内にあるビジュアルすべてに影響を与えます。
しかし、編集インタラクションを利用すると、ページ上のビジュアルごとに「スライサーの影響を受ける / 受けない」を設定し直すことが可能になります。
2. 編集インタラクション機能を使ったフィルターの連動解除方法
ここでは、スライサーがある状態を前提に進めます。たとえば「年度」や「地域」などを選択できるスライサーがあり、通常ならそれを操作するとページ上のすべてのビジュアルが絞り込まれる、という状況です。
2-1. 編集インタラクションの操作手順
-
Power BI Desktopでレポートを開き、ページを表示する
-
リボンの**「形式設定」または「形式」タブ**(バージョンやUIの変更により名称が変わる場合があります)をクリック
-
**「編集インタラクション (Edit Interactions)」**というボタンを探してクリック
-
連動制御を行いたいスライサーを選択すると、他のビジュアルに対して小さなアイコンが表示される
2-2. スライサーの影響を受けさせたくないビジュアルを「無効」に設定
先ほどのステップ4で表示されたアイコンのうち、**「無効(None)」**を選択することで、スライサー操作によるフィルターがそのビジュアルには一切かからなくなります。
これで、特定のビジュアルだけフィルターの影響を受けない状態を簡単に作ることができます。
2-3. ハイライトとフィルターの違い
「編集インタラクション」設定では、「ハイライト(Highlight)」に切り替えると、クリックされたビジュアルの値に該当する部分だけがハイライト表示され、それ以外はグレーアウトする形の表示となります。一方、「フィルター(Filter)」にしておくと、該当しない行は完全に非表示になる形で連動します。
今回は「連動させない」ことが目的なので、単純に**「無効(None)」**を設定すればOKです。
3. DAXでフィルターを無視する方法
3-1. 特定ビジュアル内だけ集計を固定したいケース
「編集インタラクション」でビジュアル単位の連動を解除する方法のほかに、DAX関数を使って特定の計算をフィルターの影響から除外することも可能です。たとえば以下のようなニーズです。
この場合にはDAXのALL関数やALLSELECTED関数などを使ってフィルターを無視する(または意図的に再設定する)テクニックがよく活用されます。
3-2. ALL関数の基本
ALL(Table)やALL(Column)というDAX関数は、そのテーブルや列に適用されたフィルターを無効化して計算を行う、というものです。
例:全体売上を求めるメジャーを作りたい場合
このメジャーをビジュアルに配置すると、たとえユーザーがスライサーで年度や月を指定しても、日付列にかかるフィルターを無視して全期間の合計を返すようになります。
3-3. ALLSELECTED関数との違い
ALLSELECTED(Table)は、ユーザーが現在選択しているコンテキストを一部尊重しながらも、特定の列に対するフィルターだけをリセットしたい場合に使います。少し高度なシナリオですが、以下のような場面で利用されます。
なお、最初に試すならALL(Table)やALL(Column)で十分なケースが多いでしょう。
4. フィルター連動を外す際の注意点
4-1. 利用者が混乱しないようにラベリング・説明を入れる
ビジュアルの一部だけフィルターを受けない設定にすると、閲覧ユーザーは「スライサー操作をしたのに、このカードの数値は変わらない」という現象に戸惑うかもしれません。
など、ユーザーへの周知も忘れずに行いましょう。
4-2. データモデルが複雑な場合、思いがけない影響が及ぶことも
テーブル間のリレーションシップが多層になっている場合、DAXでフィルターを無視させようとしても、他のリレーション先のフィールドが間接的にフィルターを受けている可能性があります。正しく動作しない時は、テーブルリレーションの確認やどこでフィルターがかかっているかを再チェックしてみてください。
4-3. 実際にWeb上にパブリッシュして動作確認する
Power BI Desktop上のプレビューと、Power BI Service(ブラウザ)上やアプリで実際に閲覧したときの動作が若干異なるケースもあります。特に「Ctrl + クリック」で動作をテストしなければならない場面などがあるため、本番での動作確認は念入りに行いましょう。
5. 応用例:ページ間ナビゲーションや複数スライサーとの連携
5-1. ページ間でスライサーを同期させつつ、一部のページでは無視する
Power BIにはスライサーを同期できる機能(Sync Slicers)があります。これを使うと、ユーザーがページAのスライサーで選んだ値をページBにも反映させることが可能です。ただし、一部のページビジュアルではそのスライサーの影響を受けたくない場合、編集インタラクションを使って連動を外しておくか、ページレベルフィルターと使い分けることで設計を柔軟に行えます。
5-2. ブックマークボタンで「連動しない状態」を切り替える
ブックマーク機能を使えば、**「フィルターが全てクリアされた状態」と「フィルター適用された状態」**をボタン1つで切り替えるなど、より高度なUIを作ることができます。
を用意しておき、ユーザーがボタンを押すことで一気にフィルター連動が外れる・再適用する、といった動きも可能です。
6. まとめ
「Power BIでフィルターを連動させない」というテーマについて、編集インタラクションと**DAX関数(ALLなど)**を中心に解説してきました。通常はクロスフィルターの自動連携が便利ですが、シナリオによっては特定のビジュアルだけ集計値を固定表示したり、スライサーの影響を受けさせないことが必要なケースがあります。
これらをうまく組み合わせることで、より自由度の高いレポート設計が実現できます。たとえば、「全体のトレンドを示すカードビジュアル」と「スライサーで自在にフィルターできる詳細分析用テーブル」を同じページに並べるなど、分析者にとって使い勝手の良いUIを作成可能です。
ぜひ本記事の方法を参考に、Power BIでのレポートづくりをさらにパワーアップしてみてください。
もし困り事があるなら、まずは無料相談を
「Power BI で箱ひげ図を使って詳細分析をしたいが、データモデルやDAX設計が複雑でわからない…」「Power Automate を併用してデータ更新フローを自動化したいが、どこから手を付ければいいのかわからない」といったお悩みをお持ちの方も多いのではないでしょうか。
コメント