Power BI Desktop でも Calculation groups の追加編集ができるようになったので。
Power BI Desktop の編集機能がプレビューなだけで、Power BI の前身ともいえる Azure Analysys Services / SQL Server Analysis Services から利用できる機能。Premium 機能ではない。
暗黙のメジャーの使用には制限が追加される。データモデル対するこの変更は、Power BI Desktop では元に戻すことができない。暗黙のメジャーに関する制限は他の機能でも起きるので、常に明示的にメジャーを定義することが優先となる。
暗黙のメジャーはビジュアルに列を配置し計算の種類を選択する手段。Excel ピボットテーブルの計算の種類と同じような動作だ。
動作を知る
使い方を参考にしたり、導入を検討する前に動作を把握しておくとよい。
追加した Calculation group に計算アイテムAlways zero
をひとつ追加。
Always zero = 0
// SELECTEDMEASURE()
ふたつのメジャーとビジュアル(テーブルとカード)、そして 計算アイテム列 Show as
をスライサで配置
DEFINE
VAR __DS0Core =
SUMMARIZECOLUMNS(
ROLLUPADDISSUBTOTAL('Product'[区分名], "IsGrandTotalRowTotal"),
"Amount", 'Sales'[Amount] // 👈 ココ
)
VAR __DS0PrimaryWindowed =
TOPN(502, __DS0Core, [IsGrandTotalRowTotal], 0, 'Product'[区分名], 1)
EVALUATE
__DS0PrimaryWindowed
ORDER BY
[IsGrandTotalRowTotal] DESC, 'Product'[区分名]
スライサで選択した計算アイテム列 Show as
の作用により、すべてのメジャーは Always zero
として評価される。すべてのメジャーを置き換えるような動作だ。
テーブル ビジュアルが発行する DAX クエリを観察すると、フィルタ テーブルが追加されているだけでメジャーを置き換えるような所作は確認できない。メジャーの定義されている式、評価される式だけを変更するという動作ということになる。
DEFINE
VAR __DS0FilterTable =
TREATAS({"Always zero"}, 'Calculation group'[Show as])
VAR __DS0Core =
SUMMARIZECOLUMNS(
ROLLUPADDISSUBTOTAL('Product'[区分名], "IsGrandTotalRowTotal"),
__DS0FilterTable,
"Amount", 'Sales'[Amount] // 👈 ココ
)
VAR __DS0PrimaryWindowed =
TOPN(502, __DS0Core, [IsGrandTotalRowTotal], 0, 'Product'[区分名], 1)
EVALUATE
__DS0PrimaryWindowed
ORDER BY
[IsGrandTotalRowTotal] DESC, 'Product'[区分名]
フィールド パラメータ機能でビジュアルへのメジャーの配置を変更することはできるけれども、この動作はビジュアルに依存する機能。なので、Power BI レポートでのみ利用できるということ。
Calculation groups はデータモデルのみで機能を実現するので、Power BI レポートのみということにはならない。Analyze in Excel でも動作する。
思ったこと🙄
なぜ SELECTEDMEASURE 関数を使うことになるのか。よくわかる。
動作を知っていれば難しいことはないはずだ。
その他