先日の勉強会で質問があったので、やり方を考えてみました。
他にもっとスマートな方法や説明があるのではないかとは思いますが、自分の勉強として。
##やりたいこと
ある分類について、最大値を色分けしたい。(多分、こういうことだと思います)
##考え方
- 分類の表に対して「最大値か/それ以外か」を区別する列(ISMAX列)をつくる
- グラフの場合「凡例」にISMAX列を適用する
- 表の場合、「条件付き書式」で「ルール」を選択し、ISMAX列を条件に適用する
##1. 分類の表に対して「最大値か/それ以外か」を区別する列(ISMAX列)をつくる
前提として、数値の合計をメジャーとしてつくっておきます。
数値SUM = SUM('テーブル'[数値])
次に、分類のマスタとなる表があると思うので、そちらに計算列として「ISMAX列」を追加します。
ISMAX =
if(
[数値SUM]=MAXX('分類マスタ',[数値SUM]),
true,
false
)
評価する式の、左辺は各行ごとの数値合計、右辺は最大値を表します。
MAXXの末尾の「X」は行ごとに評価するという意味で、分類マスタの行ごとに計算した結果の最大値を返します。
##2. グラフの場合「凡例」にISMAX列を適用する
図のように、ISMAX列を「凡例」に追加します。
[追記]積み上げ棒グラフを使用します。
このようなグラフの塗り分けは、下記のhrkasnoさんの記事が詳しいです。
https://qiita.com/hrkasno/items/a472d7094d2b862f0eed
hrkasnoさんは他にもグラフの見せ方について沢山記事を書いて見えて、どれもすごく参考になります!
##3. 表の場合、「条件付き書式」で「ルール」を選択し、ISMAX列を条件に適用する
表の場合、「true,false」だとうまくできなかったので、「1,0」という数値にしました。
ISMAX2=
if(
[数値SUM]=MAXX('分類マスタ',[数値SUM]),
1,
0
)
現在のPower BIでは、表に含まれないフィールドに基づく書式設定ができるようになっています。便利!
条件付き書式を設定するには、設定したいフィールド名を右クリックするか、下向き三角をクリックし、条件付き書式を選択します。
設定画面で、「ルール」を選び、フィールドISMAX2について、合計が1の場合に好きな色になるようルールを作成します。
「概要」は日本語だとわかりにくいですが、英語だと「summarization」で、評価する値を1つ算出するための計算方法を選ぶ欄と言えばいいでしょうか。今回はもともと評価対象の値が1つずつ(1か0)なので、合計でなく、平均、最大値、最小値などを選んでも結果は同じになります。
こういったラベルは、英語の方が直感的に分かりやすく、私はよくわからなかったら英語にしてみるということをたまにします。(英語力もさほど無いのでアレですが…)
##最後に
色分けはひと手間掛かるのですが、レポートがぐっと見やすくなることがあり便利ですね!
自分の場合ですと、利用者がExcelに慣れている文化があり、表が求められる事が多いのですが、数字だけだと1目で分かりにくいので、必ずデータバーなどを足して使っています。
もう1歩踏み込むと、Power BIでは、Excelより少ない手間でより多くの表現ができるので、今までは「最大値を色分けする」という表現方法だったけれども、本当に一目で表現したいことに対して、もしかしたら別の見せ方ができるかもしれないな、という目で検討してみるのもいいんじゃないかなと思います。