計算グループでは、データ分析式 (DAX) の数式を計算項目として定義できるため、作成する必要がある冗長メジャーの数を大幅に減らすことができます。 計算項目は、モデル内の既存の測定基準に適用できます。 計算グループの詳細については、「計算グループ」を参照してください。
モデル ビューに新しい計算グループを追加する
Power BI でセマンティック モデルを編集するときに、[モデル] ビューに移動し、リボンの [計算グループ] ボタンを選択します。 モデル エクスプローラーをまだ使用していない場合は、[データ] ペインで [モデル] ビューを開きます。
[暗黙的なメジャーを防止] プロパティがオフになっている場合は、計算グループの作成を有効にするためのダイアログ ウィンドウが表示されます。
暗黙的なメジャーは、[レポート] ビューで、ビジュアル内の[データ] ペインから直接データ列を使用すると実行されます。 ビジュアルを使用すると、暗黙的なメジャーとなる SUM、 AVERAGE、 MIN、 MAX、またはその他の基本的な集計として集計できます。 計算グループがモデルに追加されると、Power BI では、データ ペインのデータ列の横に合計記号が表示されなくなり、ビジュアルへのデータ列の値としての直接の追加がブロックされるため、暗黙的なメジャーの作成が推奨されません。 既にビジュアルで作成されている既存の暗黙のメジャーは引き続き機能します。 計算項目は暗黙的なメジャーには適用しないため、[暗黙的なメジャーの防止] プロパティを有効にする必要があります。 計算項目は、メジャーまたは明示的なメジャーにのみ適用します。
メジャーまたは明示的なメジャーは、新しいメジャーを作成し、DAX 式を定義してデータ列を集計するときに実行されます。 明示的なメジャーには、DAX を使用して実行できる機能を最大限に活用して、条件付きロジックとフィルターを追加することもできます。 チュートリアル: Power BI Desktop で独自のメジャーを作成する方法について説明します。
注
計算項目の式は、計算項目を変更したくないメジャーがある場合に、名前またはデータ型によってメジャーを無視するように記述できます。
[ はい ] を選択して 推奨しない暗黙的なメジャー プロパティを有効にすると、計算グループが追加され、DAX 数式バーの最初の計算項目の DAX 式の定義を開始できます。 既に暗黙的なメジャーが有効になっている場合、ダイアログは表示されません。
SELECTEDMEASURE は、計算項目式のメジャーのプレースホルダーとして機能する DAX 関数です。
SELECTEDMEASURE DAX 関数に関する記事を参照してください。
Power BI TMDL ビューを使用して計算グループを追加する
計算グループは、Power BI Desktop の表形式モデル定義言語または TMDL ビュー で作成できます。 セマンティック モデルを編集し、この TMDL スクリプトを使用します。
createOrReplace
table 'Calculation group'
calculationGroup
precedence: 1
calculationItem 'Calculation item' = SELECTEDMEASURE()
column 'Calculation group column'
dataType: string
summarizeBy: none
sourceColumn: Name
sortByColumn: Ordinal
annotation SummarizationSetBy = Automatic
column Ordinal
dataType: int64
formatString: 0
summarizeBy: sum
sourceColumn: Ordinal
annotation SummarizationSetBy = Automatic
タイム インテリジェンスの例
Analysis Services テーブル モデルでの計算グループに関する記事には、計算グループのタイム インテリジェンスの例があり、これを使用していくつかの計算項目を設定できます。 この例は 、Date テーブルを持つ任意のモデルに追加することも、 DAX サンプル モデル (DAX) から Adventure Works DW 2020 PBIX をダウンロードすることもできます。
計算グループの名前を変更する
計算グループの名前を変更するには、[データ] ペインでグループをダブルクリックするか、グループを選択して [プロパティ] ペインを使用します。
計算グループの列名を変更する
計算グループの列名を変更するには、[データ] ペインでグループをダブルクリックするか、グループ列を選択して [プロパティ] ペインを使用します。 選択する列は、特定の計算項目を適用するためにビジュアルまたはスライサーで使用する列です。
計算項目の名前を変更する
最初の計算項目は SELECTEDMEASURE() として作成されたため、項目ダブルクリックするか、[プロパティ] ペインを使用して名前を変更できます。
計算項目をさらに作成する
計算項目をさらに作成するには、[計算項目] セクションまたは計算グループ自体の右クリック コンテキスト メニューを使用して、[新しい計算項目] を選択するか、[計算項目] セクションの [プロパティ] ウィンドウを使用します。
すべてのタイム インテリジェンス計算項目が追加されると、計算グループは次の図のようになります。
エラーを示す赤い三角形のアイコンに注目してください。 エラーが発生するのは、DAX 式の例で DimDate という Date テーブルが使用されているためです。DAX 式を更新して「Date」という名前を使用する必要があります。 次の図は、修正前の DAX 式を示しています。
DAX 式を修正すると、エラーは消えます。
計算項目の各エラーを修正すると、赤い三角形の警告アイコンが表示されなくなります。
計算項目の並べ替えを再実行する
計算項目を任意の論理的な方法で再度並べ替えるには、[プロパティ] ペインで [計算項目] セクションを選択するか、計算項目のコンテキスト メニューを右クリックしてリスト内を上下に移動させます。
計算項目に動的書式指定文字列を追加する
計算項目では、基本的なメジャーの書式設定が既定で使用されますが、 代わりに前年比 % をパーセンテージで表示することもできます。 これを行うには、[YOY%] 計算項目を選択し、プロパティ ペインで[動的書式指定文字列] をオンにします。これにより、DAX 式を指定して書式指定文字列を作成できます。 この例では、条件付き要素は必要ないため、次の図に示すように、単純に #,##0.00% この計算項目を適用すると、書式がパーセンテージに変更されます。
レポートでの計算グループの使用
レポートで新しい計算グループを使用するには、[レポート] ビューに移動し、マトリックス ビジュアルを作成して次を追加します。
- Date テーブルの [月] 列を [行]へ
- [タイム インテリジェンス] 計算グループの [時間計算] を [列] へ
- [注文] メジャーを [値] へ
注
メジャー Orders がモデルに作成されていない場合は、別のメジャーを使用するか、リボンに移動して [新しいメジャー ] を選択して、この DAX 式で作成できます。
Orders = DISTINCTCOUNT('Sales Order'[Sales Order])
次の図は、ビジュアルの構築を示しています。
マトリックス ビジュアルの [列] に表示されている計算項目には、各計算項目によってグループ化された [注文] メジャーが表示されます。 計算グループ列をスライサービジュアルに追加することで、個々の計算項目を複数のメジャーに適用することもできます。
メジャーでの計算項目の使用
特定のメジャーの計算項目を使用する式を使用して、新しいメジャーを作成できます。
[受注 YOY%] メジャーを作成するには、CALCULATE を使用して計算項目を使用できます。
Orders YOY% =
CALCULATE(
[Orders],
'Time Intelligence'[Time Calculation] = "YOY%"
)
計算グループの優先順位の設定
最後に、モデルにさらに計算グループを追加する場合は、優先順位プロパティを持つメジャーに適用される順序を指定できます。 計算グループの優先順位は、次の図に示すように、[ 計算グループ] セクション のプロパティ ウィンドウで調整できます。
計算グループの優先順位の詳細については、Analysis Services テーブル モデルの計算グループに関する記事を参照してください。
計算グループの選択式
計算グループの選択式を設定すると、ユーザーが計算グループで複数、無効、または何も選択しなかった場合に、計算グループが返す内容をきめ細かく制御できます。 選択式を参照してください。
考慮事項
モデルのメジャーをバリアントデータ型に変更する
計算グループがセマンティック モデルに追加されるとすぐに、Power BI レポートはすべてのメジャーに バリアント データ型を使用します。 その後、すべての計算グループがモデルから削除されると、計算項目は元のデータ型に戻ります。
バリアント データ型では、メジャーを使用する メジャーの動的書式指定文字列 が発生し、再使用してエラーが表示される場合があります。 FORMAT DAX 関数を使用して、バリアント メジャーを文字列データ型として再認識するように強制します。
FORMAT([Dynamic format string], "")
または、 代わりに DAX ユーザー定義関数 を使用して、動的書式指定文字列に式を再利用することもできます。
計算項目が数値以外のメジャーに算術演算を適用すると、ビジュアル エラーが発生する
数値以外の指標は、データ視覚化において、視覚化の動的タイトルや指標の動的書式文字列によく使用されます。 テキスト型を数値型に変換できないというエラーが、影響を受けるビジュアルに表示されています。 計算項目の式では、数値演算を適用する前に、メジャーが数値かどうかを確認するチェックを追加することで、このエラーを回避できます。 計算項目で ISNUMERIC を使用します。
Calculation item safe =
IF (
// Check the measure is numeric
ISNUMERIC( SELECTEDMEASURE() ),
SELECTEDMEASURE() * 2,
// Don't apply the calculation on a non-numeric measure
SELECTEDMEASURE()
)
関連するコンテンツ
以下の記事では、データ モデルと DirectQuery について詳しく説明しています。
- Analysis Services テーブル モデルの計算グループ
- Power BI でのモデル エクスプローラーの操作
- Power BI のモデリング ビューの操作
- 自動集計
- Power BI Desktop で複合モデルを使用する
- Power BI Desktop でストレージ モードを管理する
- Power BI Desktop での多対多カーディナリティのリレーションシップ
DirectQuery に関する記事: