9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Power BI] 計算グループ(Calculation Groups)を実装し、JAPAN RUGBY LEAGUE ONE の選手をポジション別に集計したあと、箱ひげ図で可視化する。

Last updated at Posted at 2022-02-07

はじめに

下記シリーズ連載の続きになります。

やってみたこと

計算グループ(Calculation Groups)使用してポジション別の平均体重、最高体重などを集計したテーブルを作成し、箱ひげ図で可視化する。

image.png

計算グループ / Calculation Groups とは

公式Documentsから引用。

計算グループを使用すると、一般的なメジャー式を 計算品目 としてグループ化することにより、冗長なメジャーの数を大幅に削減できます。

今回のレポートでいうと

公式HPより取得した選手一覧からポジションを抜き出すと、下記の11種類あります。

  • PR
  • HO
  • LO
  • FL
  • NO8
  • SH
  • SO
  • CTB
  • WTB
  • FB
  • 登録なし

たとえばPRの平均体重を求めるDAXはこうなります。

PRの平均体重 =
CALCULATE (
    AVERAGEX (
        'Height&Weight',
        'Height&Weight'[Weight]
    ),
    'Height&Weight'[Position] = "PR(プロップ)"
)

通常通りDAXを書いていくと、この式をポジション別にあと追加で10個書く必要があります。
また、じゃあ平均身長、最高体重、最高身長、最低体重、最低身長・・なんて集計が必要なればなるだけ、×11個のメジャーを記述する必要が出てきます。

そこで登場するのが**計算グループ(Calculation Groups)**です。

必要なツール

計算グループ(Calculation Groups)はPower BI Desktopでは実装できません。
Tabular Editorというツールが必要です。無料版(コミュニティエディション)のTE2と、有料版のTE3があります。

スクリーンショットはTE3で撮っています。今回でてくる操作はTE2とTE3でほとんど変わりません。

実装

ということで、Tabular Editorを使用して実装に移ります。

ベースメジャーの作成

AVERAGEX(
    'Height&Weight',
    'Height&Weight'[Height]
)

身長の平均を求めるDAXを記述。この時点では、チームやポジションでのフィルターについては考慮しません。

Calculation Groupの作成

Tabular Editor を開いて、TOM ExplorerでTableを右クリックしてCalculation Groupをクリックします。

image.png

New Calculation Group

New Calculation Group ができたら、そこをさらに展開して、Calculation itemsを右クリックしてCalculation item作成へと進んでいきます。

image.png

Calculation item作成

計算グループ(Calculation Groups)はここに具体的に記述していきます。今回はポジション別にさまざまな指標を求めていきたいので、ポジションごとのフィルターコンテキストを追加していきます。

ここで出てくるSELECTEDMEASURE()関数が特殊で、評価時にベースメジャーに置き換わるプレースホルダーです。特に引数ももちません。

CALCULATE(
    SELECTEDMEASURE(),
    'Height&Weight'[Position] = "PR(プロップ)"
)

datastudio CALCULATE( SELECTEDMEASURE(), 'Height&Weight'[Position] = "HO(フッカー)" )

といったかたちでポジション分作成します。

image.png

順序の調整

PropertiesOrdinalの数字を変更すると、小さい数字から順に並び替わります。スライサーなどにするときもこの順番が生かされるので、必要なら使用してください。今回はFWからBKになるように順番を決めてみました。

image.png

テーブル名、カラム名

計算グループ(Calculation Groups)を作成して、Power BI Desktopに反映すると下図のような名前になっています。Tableau Editorで確認すると、対応する部分がわかります。それぞれ、適当な名前をつけておきます。

Power BI Desktop

image.png

Tableau Editor

image.png

ビジュアルの作成

Power BI Desktop でマトリックスビジュアルを選択し、「行」にチーム名、「列」に計算グループ(Calculation Groups)を適用します。

image.png

ここまでしかやらないと、エラーが表示されます。

image.png

これはまだ**「値」**を設定していないため、ベースメジャーなく、SELECTEDMEASURE()が置き換えるメジャーがないためエラーとなってしまっています。

ここで、値にAve_Heightを設定します。

image.png

Ave_Height = AVERAGEX(
    'Height&Weight',
    'Height&Weight'[Height]
)

結果1

期待通りの数値がでました。

image.png

ベースメジャーを追加

ここまで作成をすると、あとはベースメジャーを追加していくだけで、ポジションごとの集計を追加していくことができます。以下6項目でマトリックスを作成してみます。

  1. 平均身長
  2. 平均体重
  3. 最高身長
  4. 最低身長
  5. 最高体重
  6. 最低体重
平均体重ベースメジャー.dax
Ave_Weight = AVERAGEX(
    'Height&Weight',
    'Height&Weight'[Weight]
)

`最高身長ベースメジャー.dax
MAX_Height = MAXX( 'Height&Weight', 'Height&Weight'[Height] )

最高体重ベースメジャー.dax
MAX_Weight = MAXX( 'Height&Weight', 'Height&Weight'[Weight] )

結果2

ベースメジャーを**「値」**にどんどん放り込むだけで、各種指標でポジション別に数値を検証することが出来ました。

image.png

スライサーを追加

計算グループ(Calculation Groups) を使って作成したビジュアルは、**計算グループ(Calculation Groups)**のスライサーで表示をコントロール可能です。

横にかなり長い表になってしまっているので、LOでフィルターします。

結果3

無事期待どおりの数値が出ています。

image.png

箱ひげ図の追加

デフォルトのビジュアルでは箱ひげ図はサポートされていないので、カスタムビジュアルを追加します。今回はこれを追加しました。

image.png

箱ひげ図はデータの最大値、最小値、四分位数、四分位範囲、平均値が一目でわかり、大まかな散らばり具合を把握でき、複数のデータを比較しやすいという特徴があります。

結果4

箱ひげ図を作成することができました。ざっと見た感じで、FLとCTBの体格分布が似ていることなどがわかります。散布図ではわかりにくかったデータの広がりも比較しやすくていいですね。

image.png

完成

image.png

まとめ

計算グループ(Calculation Groups)を使用してレポートを作成できました。計算グループ(Calculation Groups)の使用場面の王道はタイムインテリジェント関数との組み合わせで解説しているものがほとんどですが、こういったよりシンプルな題材で手を動かせば理解は早くなるなと感じます。とても便利な半面、よくよく調べていくと落とし穴もたくさんあるので、少し複雑な局面で使う際には要注意な関数だと思います。公式DocumentsやSQLBIなど勉強必須:relaxed:

公式Documents

参考資料

9
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?