計算テーブルを作成する

適用対象: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

計算テーブル は、DAX クエリまたは式に基づいて計算されたオブジェクトで、同じモデル内の他のテーブルの全部または一部から派生しています。

計算テーブルで解決できる一般的な設計上の問題では、クライアント アプリケーションでクエリ構造として公開できるように、特定のコンテキストで多様ディメンションが表示されています。 ロールプレイング ディメンションは、単に複数のコンテキストで表されるテーブルであることを思い出してください。従来の例は、外部キーリレーションシップに応じて OrderDate、ShipDate、または DueDate として表される Date テーブルです。 ShipDate の計算テーブルを明示的に作成することで、他のあらゆるテーブルと同様に完全演算可能な、クエリに利用できるスタンドアロン テーブルが得られます。 もう 1 つの用途には、フィルター処理された行セット、サブセット、または他の既存のテーブルからの列のスーパーセットの構成が含まれます。 特定のシナリオをサポートする目的でテーブルのバリエーションを作成しても、元のテーブルをそのまま維持できます。

計算テーブルを最大限に活用するには、少なくとも DAX についてある程度理解している必要があります。 テーブルの式を操作する際に、計算テーブルに DAXSource を含む 1 つのパーティションが含まれていることを把握するのに役立つ場合があります。ここで、式は DAX 式です。
式によって返される列ごとに 1 つの CalculatedTableColumn があります。SourceColumn は返される列の名前です (非計算テーブルの DataColumns に似ています)。

計算テーブルを作成するには、少なくとも 1 つのテーブルが既に存在している必要があります。 計算テーブルをスタンドアロンの計算テーブル オブジェクトとして作成する場合は、まずファイル データ ソース (csv、xls、xml) からインポートしてテーブルを作成できます。 インポート元のファイルには、1 つの列と単一の値を指定できます。 その後、そのテーブルを非表示にすることができます。

計算テーブルを作成する方法

  1. まず、表形式モデルの互換性レベルが 1200 以上かどうかを確認します。 SSDT のモデルで [互換性レベル] プロパティを確認できます。

  2. データ ビューに切り替えます。 ダイアグラム ビューでは計算テーブルを作成できません。

  3. [ テーブル>] [新しい計算テーブル] を選択します。

  4. DAX 式を入力するか貼り付けます (いくつかのアイデアについては、以下を参照してください)。

  5. テーブルの名前を設定します。

  6. モデルの他のテーブルへのリレーションシップを作成します。 この手順に関するヘルプが必要な場合は、「 2 つのテーブル間のリレーションシップを作成 する」を参照してください。

  7. モデル内の計算や式でテーブルを参照するか、またはアドホック データ探索用に [Excel で分析] で使用します。

多様ディメンションをレプリケートする

[数式] バーで、別のテーブルのコピーを取得する DAX 式を入力します。 計算テーブルを読み込んだ後、わかりやすい名前を付け、ロールに固有の外部キーを使用するリレーションシップを設定します。 たとえば、Adventure Works データベースでは、Due Date の計算テーブルを作成し、ファクト テーブルとのリレーションシップのベースとして DueDateKey を使用できます。

=DimDate  

集計またはフィルター処理

[数式] バーに、必要な行を含むようにモデルをフィルター処理、集計、またはその他の方法で操作する DAX 式を入力します。 次の例では、売上、色、通貨でグループ化しています。

=SUMMARIZECOLUMNS(DimProduct[Color]  
, DimCurrency[CurrencyName]   
, "Sales" , SUM(FactInternetSales[SalesAmount])  
)  

複数のテーブルの列を使用するスーパーセット

[数式] バーで、複数のテーブルの列を結合する DAX 式を入力します。 この場合、クエリ出力には、各通貨の製品カテゴリが一覧表示されます。

=CROSSJOIN(DimProductCategory, DimCurrency)  

こちらもご覧ください

互換性レベル
Analysis Services のデータ分析式 (DAX)
表形式モデルの DAX について