Power BIで画像を動的に表示する方法

Power BIレポート内で動的に画像を表示する方法です。
静的な画像を表示するだけなら、下記のように「挿入」タブ→「イメージ」から簡単にできるのですが、
これだとPower BIの特徴の1つである、レポートを動的表示できる機能が活かせないので、別の方法でやってみました。
※外部URLとの接続が発生したり、Microsoft非公認のビジュアルを使ったりと、若干セキュリティ面には疑問を感じる部分が多いので、センシティブなデータを扱うレポートへの実装は非推奨です。
●ゴール
まず今回実現したいことですが、、、
下図のように何も選択していない状態では、自動車のアイコンが表示されているのですが、
任意で企業名を選択すると、選択した企業のアイコンに変化する。
というビジュアルを作っていきたいと思います。
●必要なもの
Power BI Desktop以外で必要なものです。
1.画像(.pngとかで保存しておけば大丈夫です)
2.画像の格納先サーバー(僕はOne Driveを使っています。Microsoft製品ですし、無料なのでおすすめです)
3.画像表示用のカスタムビジュアル(自分はImage by Cloudscopeという名前のビジュアルをインストールして使いました)
●進め方
以下、進め方です。
他にも方法あるかもしれませんので、あれば教えて下さい。
1.画像の準備
まずは、Power BIレポート内で表示させたい画像を準備していきます。
まずは画像をサーバーに格納し、その格納先のアドレスをコピーします。
以下はOne Driveのやり方です。Google Drive等、その他のメディア使ってもいいかもしれませんが、無料なので、自分はこの方法で進めています。
◆1-1
こんな感じで、表示させたい画像を格納します。※新しく専用のファイルを作り、そのファイルの中に格納しておくとBetterだと思います。
ちなみに一番右にある黒の自動車のアイコンは、何も選択していない状態或いは全ての企業を選択した状態で表示するためのアイコンです。
◆1-2
画像をクリックし、右上の「埋め込み」を選択後、埋め込み用のURLをコピーします。
この画像のURLにアクセスを知っている人なら「誰でも」画像にアクセスできてしまうので、
セキュリティ面には注意して取り扱って下さい。
◆1-3(やってもやらなくてもOKです!)
1-2でコピーしたURLを、Excelファイルに貼り付けます。
こんな感じで貼り付けます。
※ここで画像データをBase64エンコードした方が本来はいいのですが、しなくても表示できたので割愛します。
※今回このデータはPower BIにインポートするわけではなく、URLが分かればいいので、やってもやらなくてもOKです。ただ備忘用に個人的にはデータのURLをマスタとして持っておきたいので、自分はデータを作りました。
画像の準備は以上です。
2.Power BI Desktopの操作
続いて、Power BI Desktop側での操作です。
◆2-1
Power BI Desktopにカスタムビジュアルをインポートします。
今回使ったビジュアルは「Image by CloudScope」というものになります。
◆2-2
では、DAX関数を使って、画像の出し分けを行うよう設定していきます。
今回使ったのは、
・「SelectedValue」関数と、
・「Swich」関数
の2つの2段論法です。
・「SelectedValue」
‘Measure'[Card] =SELECTEDVALUE(‘Automotive Revenue'[企業名], “自動車業界”)
・「Switch」
⇒SelectedValueで返す文字が、各企業名と一致した場合(トヨタ、ホンダ、日産)、画像URLを返す。代替結果(何も選択していない状態)としては、デフォルトの画像を返す
PictureDax =SWITCH(TRUE(),’Measure'[Card] = “トヨタ”,”トヨタの画像のURL”,’Measure'[Card] = “ホンダ””ホンダの画像のURL”,’Measure'[Card] = “日産””日産の画像のURL”,”デフォルトの画像のURL”
◆2-3
2-2で作った関数を、2-1のビジュアルにドラッグ&ドロップして完成です。
以上です。
関数の説明とか、少しはしょったところがあり、すみません!
参考にしてみて下さい。
コメントを残す