📈

PowerBI パラメーターで「〇〇以上〇〇以下」をする

2023/03/25に公開

パラメーターを使ってフィルターをかける

「Aの指標は〇〇以上、Bの指標は〇〇以下のデータが見たい」
「基準をクライアント側で調整できるようにしたい」
フィルターがあるじゃないかと説明しても、簡単に理解はしてもらえない時もある。

これをPowerBIならパラメーターで実現できた。
Excelなら「フィルターの詳細設定」あたりでできそう。

パラメーターを表(マトリックス)に使う

今回は、「 気温〇〇度以上、湿度〇〇度以下 」を
指定できる表を作ってみる。

データを用意する

日別の気温と湿度のデータを用意する。

ExcelのRAND関数で用意したので正しい季節性はない。
PowerBIに取り込んでおく。

パラメーターを作る

今回は 気温用湿度用 のパラメーターを2つ作る。
モデリングのタブから、新しいパラメーターをクリックする。

すぐにポップアップが出て、初期値は以下が入力されている。

増分を10にしたり、既定値を20にしたり、好きなように設定できる。
2つ作るとフィールドにはこのように作成される。

それぞれをクリックすると数式バーには以下が表示される

パラメーター = GENERATESERIES(最小値, 最大値, 増分)
パラメーター 値 = SELECTEDVALUE('パラメーター'[パラメーター], 既定値)

「パラメーター 値」の名前を変更して使用することも可能。
「このページにスライサーを追加する」をチェックすると
レポートにスライサーが出てくる。

フィールドにおくパラメーターを変更することもできるので、
2回目以降はスライサーは新しく作らず、
書式を固めたらコピーしてフィールドを変更する方が楽だと思う。

今回は、以下のようにした。

・温度用(0~70℃までを、1℃ずつ指定できる。規定は30℃)

パラメーター 2 = GENERATESERIES(0, 100, 1)
パラメーター 値 2 = SELECTEDVALUE('パラメーター 2'[パラメーター], 50)

表(マトリックス)を作っておく

視覚化からマトリックスを選び、表示したいフィールドを追加する。

作ったパラメーターを入力できるようにする

スライサーの書式をお好みに変更して、マトリックスの近くに設置する。

説明のテキストボックスと、スライサーを2つ並べてみた。

絞り込み用のメジャーを作る

パラメーターを使ってフィルタリングできる仕組みを作る。
先ほど用意した、「パラメーター 値」と「パラメーター 値 2」を使う。

tmp_prm = IF( 
                    AND(
                        sum(data[気温]) >= [パラメーター 値], 
                        sum(data[湿度]) <= [パラメーター 値 2]/100
                        ), --①
                    sum(data[気温]), --② 
                    BLANK() --③
                    )

解説すると、
①AND関数で、以下を確認してBool値を取得。
・気温 が パラメーター 値 より大きいか
・湿度 が パラメーター 値 2より小さいか
②TRUEの時は「気温」を表示(湿度や、「1」を入力でもよい)
③FALSEの時はBLANK(空白)を表示

表(マトリックス)に反映させる

先ほど作った「tmp_prm」を
マトリックスのフィルターに追加し、「 空白でない 」にする。

結果

気温〇〇度以上、湿度〇〇度以下 」の日付が特定できるようになった。
もっといいやり方がある気がしつつも、ちょっと急いでいる人にはおすすめ。

Discussion