
データセットから上位または下位のレコードを返すには、通常、関数または式が必要です。Microsoft Power BI では、エンドユーザーがフィルターを選択して視覚化を調整できるフィルターを使用します。このフィルターは簡単に実装できます。ただし、静的であるという欠点があります。つまり、フィルターを適用する際、ユーザーは上位または下位のどちらか一方しか選択できません。
このチュートリアルでは、Power BI の組み込みフィルターを使用して、Power BI の視覚化で上位または下位の一定数の値を表示する方法を説明します。
Windows 10 64ビットシステムでPower BIを使用しています。デモ用の.pbixファイル「AdventureWorks Sales」はGitHubからダウンロードできます。具体的には、CustomerテーブルとSalesテーブルを操作します。ダウンロードしたら、.pbixファイルをダブルクリックしてPower BIで開き、手順に従って操作するか、ご自身の.pbixファイルを使用してください。
参照: Microsoft Power Platform: 知っておくべきこと (無料 PDF) (TechRepublic)
Power BI のフィルターについて
Power BI には 3 種類のフィルターが用意されています。
- Power BI は、視覚化を作成する際に自動フィルターを追加します。ユーザーはフィルターを特定の方法で変更できますが、削除することはできません。
- フィルターパネルでは手動フィルターが利用できます。ユーザーは必要に応じてフィルターをバケットにドラッグできます。
- 高度なフィルターも利用可能ですが、より特殊化されています。
このチュートリアルでは、レポートウィンドウの「フィルター」ペインから手動フィルターを追加します。Power BIの「Top」フィルターを使用します。このフィルターは、TOPN DAX表形式関数を使用して、式に基づいて入力テーブルから上位または下位の値を選択します。Power BIにおける入力テーブルは、ソーステーブルの別名です。TOPN DAXは入力テーブルのサブセットを返しますが、上位または下位の値のみを返します。この関数の構文は次のとおりです。
TOPN(<n_value>, <table>, <orderBy_expression>, [<order>[, <orderBy_expression>, [<order>]]…])
議論の説明は次のとおりです。
- n_value は、入力テーブル (データ ソース テーブル) から返される項目の数です。
- table は入力テーブルです。
- orderBy_expression は、上位または下位のレコードを返すために並べ替えるために使用される式です。
- order は、結果をテーブルの上から取得するか下から取得するかを指定します。デフォルトは DESC で、TOP と ASC は下からレコードを返します。
フィルターを追加する前に、視覚化が必要です。
Power BIでマトリックス視覚化を構築する方法
デモンストレーションの目的で、単純なマトリックス視覚化 (図 A )を作成します。理由は 2 つあります。マトリックス視覚化は適用が最も簡単な視覚化であり、この場合、マトリックスは読みやすく、識別しやすいからです。
図A

この視覚化を作成するには、次の手順を実行します。
- レポート ウィンドウで、視覚化ペインの [マトリックス] をクリックします。
- フィールド ペインで Customer テーブルを展開し、Customer をチェックします。
- フィールド ペインで Sales テーブルを展開し、売上金額と注文数量を確認します。
結果は、注文数を合計し、顧客ごとに注文の合計売上を計算するマトリックス ビジュアルになります。
視覚化ができたので、Power BI でトップ フィルターを適用してみましょう。
Power BI の視覚化にトップフィルターを追加する方法
Power BIのフィルターペインは、レポートウィンドウの視覚化の右側に表示されます。必要に応じて、右上隅の>アイコンをクリックして展開してください。このペインでは、3つの異なるレベルでフィルターを設定できます。
- 視覚レベル
- ページレベル
- レポートレベル
フィルタリングパネルでは、基本フィルタリングと詳細フィルタリングを選択できます(図B)。「顧客」バケットの右側にある「^」アイコンをクリックすると、基本フィルタリングのリストが表示されます。「すべて」はフィルタリングされていないフィールドを表します。
図B

つまり、ビジュアライゼーションにはそのフィールドのすべての値が表示されます。フィルター内の項目の1つ(この場合は顧客)を選択すると、フィルターには「すべて」ではなくその顧客の名前が表示されます。
売上高上位10社の顧客を表示する「トップ」フィルターを追加してみましょう。これは簡単に作成できます。
必要に応じて、「フィルター」ペインを展開します。フィルター対象となるフィールドは既にビジュアライゼーションに含まれているため、フィールドを追加する必要はありません。「フィルタータイプ」ドロップダウンから「上位N」を選択します(図C)。
図C

Power BIの「表示項目」に「上位」が表示されます。右側のバケットに「10」と入力します。下位のレコードを表示するには、ドロップダウンから「下位」を選択します。次に、「Sales Amount」フィールドを「フィールド」ペインから「値別」バケットにドラッグします(図D)。フィルターの動作を確認するには、「値別」バケットの下にある「フィルターの適用」をクリックします。
図D

図Eに示すように、ビジュアライゼーションには10件のレコードのみが表示され、「売上高」フィールドの値は売上高の上位10件です。フィルターは、売上高ではなく顧客別に並べ替えます。一時的に売上高列で並べ替えるには、そのヘッダーセルをクリックします。
図E

乞うご期待
前述の通り、エンドユーザーは表示するレコード数を選択できません。これは、フィルターを追加するときにレコード数を設定するためです。今後の記事では、返される上位または下位のレコード数を選択できるスライサーを追加する予定です。