【Power BI】計算グループの基本とマトリックスビジュアルの書式ルール


計算グループとは

都度都度計算項目に対して似たようなDAXを入れる必要がなくなるのが計算グループ

計算グループの追加方法

  • モデルビュー>モデル > データタブを表示する

  • データタブ内のセマンティックモデルを右クリック>新しい計算グループをクリックする

  • 計算項目を追加する

  • 計算項目、計算グループ列、計算グループをそれぞれ名称変更する

基本の計算グループ>計算項目(SUM/AVG/MIN/MAX)

'financials'は計算対象のテーブルに置き換える。

SUM

SUM = 
SUMX(
    'financials',
    SELECTEDMEASURE()
)

AVG

AVG = 
AVERAGEX(
    'financials',
    SELECTEDMEASURE()
)

MIN

MIN = 
MINX(
    'financials',
    SELECTEDMEASURE()
)

MAX

MAX = 
MAXX(
    'financials',
    SELECTEDMEASURE()
)


タイムインテリジェンスの計算グループ

MTD:月累計

MTD = 
CALCULATE(
    SELECTEDMEASURE(),
    DATESMTD(M_Date[Date])
)

QTD:Quater(3ヶ月累計)

QTD = 
CALCULATE(
    SELECTEDMEASURE(),
    DATESQTD(M_Date[Date])
)

YTD:1年累計(10月はじまりの場合)

YTD = 
CALCULATE(
    SELECTEDMEASURE(),
    DATESYTD(M_Date[Date], "9/30")
)


セル装飾のための計算グループ>計算アイテム

計算グループを設定した上で、ビジュアルにルール設定をすることで利用することができる。割り当てるメジャーの名前に「CF」がついている必要がある。RETURN の際に、「CF」の名称のメジャーのときのみ値を1, 2 の値を返すように設定している。

CF Highlight AVG
セルの値が平均より下の場合 > 1
セルの値が平均より上の場合 > 2

CF Highlight AVG = 
VAR _AvgValue =
    AVERAGEX(
        ALLSELECTED('M_Date'[FY_FYxxyy],'M_Date'[年度四半期_0Q],'M_Date'[月_MM月]),
        SELECTEDMEASURE()
    )

VAR _CF =
    SWITCH(
        TRUE(),
        SELECTEDMEASURE() < _AvgValue ,2,
        SELECTEDMEASURE() > _AvgValue ,1,
        SELECTEDMEASURE()
    )
RETURN
IF(
    CONTAINSSTRING(SELECTEDMEASURENAME(),"CF"),
    _CF,
    SELECTEDMEASURE()
)

CF Highlight MinMax
セルの値がMaxの値のとき > 1
セルの値がMinの値のとき > 2

CF Highlight MinMax = 
VAR _MAXValue =
    MAXX(
        ALLSELECTED('M_Date'[FY_FYxxyy],'M_Date'[年度四半期_0Q],'M_Date'[月_MM月]),
        SELECTEDMEASURE()
    )
VAR _MinValue =
    MINX(
        ALLSELECTED('M_Date'[FY_FYxxyy],'M_Date'[年度四半期_0Q],'M_Date'[月_MM月]),
        SELECTEDMEASURE()
    )

VAR _CF =
    SWITCH(
        SELECTEDMEASURE(),
        _MAXValue, 1,
        _MinValue, 2,
        SELECTEDMEASURE()
    )
RETURN
IF(
    CONTAINSSTRING(SELECTEDMEASURENAME(),"CF"),
    _CF,
    SELECTEDMEASURE()
)

CF Highlight Down

セルの値が基準値(0)以上のときに警告色を表示する

CF Highlight Down = 

VAR _CF =
    SWITCH(
        TRUE(),
        SELECTEDMEASURE() < 0 ,2,
        SELECTEDMEASURE()
    )
RETURN
IF(
    CONTAINSSTRING(SELECTEDMEASURENAME(),"CF"),
    _CF,
    SELECTEDMEASURE()
)

CF Highlight UpDown

セルの値が基準値より上のとき、下のときに装飾する

CF Highlight UpDown = 

VAR _CF =
    SWITCH(
        TRUE(),
        SELECTEDMEASURE() < 0 ,2,
        SELECTEDMEASURE() > 0 ,1,
        SELECTEDMEASURE()
    )
RETURN
IF(
    CONTAINSSTRING(SELECTEDMEASURENAME(),"CF"),
    _CF,
    SELECTEDMEASURE()
)

CF Highlight Nothing

セルになにも装飾したくない場合の選択肢

CF Higlight Nothing = 
VAR _CF = 0
RETURN
IF(
    CONTAINSSTRING(SELECTEDMEASURENAME(),"CF"),
    _CF,
    SELECTEDMEASURE()
)


ビジュアルへの適用

DAX名の先頭にCF の名前をつけたメジャーを用意する

CF Total Discout = 
 [Total Discout]

マトリックスビジュアル>ビジュアル>セル要素系列を選択し、フォントの色>からルールを設定する。
「基準にするフィールド」には、先程作成したメジャーを指定する。「次の値の場合」= 1/2 で結果のところは任意に装飾を入れる。

  • 数値 = 1 > ポジティブな装飾  (青・緑)

  • 数値 = 2 > ネガティブな装飾 (赤)

参考

特にマトリックスビジュアルのハイライトの計算グループを解説している。
DAXを段階的に説明しているので、時間がない場合は最後から見るのもおすすめ。


計算グループのだいたいの概要やどのようなときにつかうのかざっくり掴むときに使う。


この記事が気に入ったらサポートをしてみませんか?