
Microsoft Power BI のデザイナーが、自然データにとらわれない洞察を得ることは珍しくありません。そのような場合、フィルター、メジャー、計算列、さらには計算テーブルといった様々なツールを活用できます。計算テーブルを使えば、複雑な計算を実行し、その結果をモデルの一部として保存できます。計算はリアルタイムで行われるのではなく、メモリ上に保存されます。必要な時にすぐに利用できます。
このチュートリアルでは、既存のデータに基づいてテーブルを作成し、売上上位5位を抽出します。作成した計算テーブルは、ビジュアライゼーションで使用できます。計算テーブルは、様々なシナリオで活用できます。後ほど、特定の目的に合わせてビジュアライゼーションを構築する際には、元のデータの代わりに計算テーブルを使用できます。元のデータでは、同じ値を評価するのにメジャーやフィルターが必要になる場合があります。
私はWindows 10 64ビットシステムでPower BI Desktopを使用していますが、Power BI Serviceも使用できます。デモ用の.pbixファイルをダウンロードし、ダブルクリックしてPower BIで開いてください。
参照: 採用キット: データベースエンジニア (TechRepublic Premium)
Power BI の計算テーブルとは
技術的には、Power BI の計算テーブルは、データ分析式(DAX)計算によって作成されるメモリ内テーブルです。計算テーブルはメモリに読み込まれるため、常に利用可能な状態です。これには次のような利点があります。
- メモリ内のデータを呼び出す方が、外部データ ソースから同じ値を取得したり、リアルタイムで再計算したりするよりも効率的です。
- 後でデータを再度取得する必要はありません。
- 値は常に最新です。
計算テーブルは.pbixファイルのサイズを大きくするという欠点がありますが、通常は妥当なトレードオフです。今のところ、計算テーブルとは、永続的にフィルタリングされたレコードセットのようなものだと考えてください。実際にはそれだけではありませんが、この説明でその目的と多くのメリットが明らかになるはずです。
それでは、この情報をすべて活用して、売上上位 5 位の表を作成しましょう。
Power BIで計算テーブルを作成する方法
上位5社程度の顧客リストは、ほとんどの組織にとって重要です。なぜなら、これらの顧客は全売上の最大の割合を占める可能性が高いからです。デモ用の.pbixファイルで上位5社の顧客のみを返す計算テーブルを作成するには、次の2つの要素が必要です。
- 顧客と総売上高の表
- 上位5つだけに絞り込む方法
幸いなことに、DAX は TOPN 関数 (リスト A ) を使用してこれらすべてを処理します。
リストA
売上トップ5 =
TOPN(5,売上,[金額],0)
図 A は、 Sales テーブルと、このテーブルの作成およびデータ入力に使用された DAX TOPN 関数に基づく結果のテーブルを示しています。
図A

この場合、TOPN関数がテーブルを返すため、CALCULATETABLE関数は必要ありません。コードは常にこのようにシンプルになるとは限りませんが、この場合は必要なものがすべて同じテーブル「Sales」に含まれています。
仕組みは以下のとおりです:
- 最初の引数 5 は、新しいテーブルを 5 つのレコードのみに制限します。
- 2 番目の引数 Sales は、評価する値を含むテーブルを示します。
- 3 番目の引数 Amount は、関数がデータを並べ替える列を示します。
- 4 番目の引数 0 は降順の並べ替えを指定します。
上位5件のレコードがあります。この関数は「Top 5 Sales」という名前の新しいテーブルを作成し、Salesテーブルのデータを入力しますが、ソートされたデータセットの最初の5件のレコードのみをコピーします。
テーブルを作成するには、次の手順を実行します。
- [表ツール]タブをクリックします。
- [計算] グループの [新しいテーブル] をクリックします。
- 数式バーに DAX 関数を入力し、Enter キーを押すか、左側のチェックマークをクリックします。
テーブルを配置したら、それを基にビジュアライゼーションを作成できます。フィルターを追加しない限り、現状ではSalesテーブルの売上上位5件が常に表示されます。
Power BI で計算テーブルを使用する方法
他のビジュアライゼーションと同様に、計算テーブルをベースにビジュアライゼーションを作成します。図Bは、売上高上位5社の金額がすべて近いという、鋭い洞察を示す円グラフを示しています。これを作成するには、「ビジュアライゼーション」ペインで「円グラフ」ビジュアライゼーションをクリックします。次に、「SalesDate」を「凡例」バケットに、「Amount」を「値」バケットにドラッグします。
図B

このビジュアライゼーションを作成したら、フィルターを追加できます。図Cは、現在中部地域の売上上位のみを表示する地域フィルターを示しています。このフィルターを追加するには、「フィルター」ペインを開き、「売上上位5件」テーブルから「地域」フィールドを「ここにデータフィールドを追加」バケットにドラッグします。
図C

フィルターを適用するには、いずれかの地域にチェックを入れるだけです。円グラフはそれに応じて更新され、その地域の値のみが表示されます。これらの値が上位5位を表していることは既にご存知でしょう。これで、地域別の売上を簡単に確認できます。
計算テーブルの作成は、自然データに基づいて計算値を報告する多くの方法の一つです。関連テーブルを参照したり、列のデータ型と書式を指定したり、テーブルと列に任意の名前を付けたり、それらに基づいて効果的なビジュアライゼーションを作成したりできます。