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」というものになります。
※Image by CloudScopeは新規でのダウンロードができなくなってしまいました。
代わりにSimple ImageやCloudScope Image Pro(進化版)を使うといいかなと思います。
◆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のビジュアルにドラッグ&ドロップして完成です。
以上です。
Power BIにDropboxの画像を読み込ませる
続いて比較的個人利用で使われることの多いDropboxを使った手法も紹介したいと思います。
Dropbox(ドロップボックス)については、画像のURLを一部変える形で進めます。とはいっても、URLの一部を変えるだけではあるのですが。
まずは下図のように画像をDropboxのフォルダにインポートして、
Power BIに表示したい画像リンクをクリックして、画像のURLをコピーします。
後はこれを同じようにExcelに貼り付けて、Power BIに読み込んでいく流れとなるのですが、
これだけだとPower BI上では画像は表示されません(下図)。
そこでURLの一部を少し変えます。
すると下図のように画像が表示されるようになります。
下記具体的な変更方法です。
本コンテンツは、ソフ蔵の会員サポーター様限定です。
コンテンツの閲覧やデータのダウンロードをご希望の方は、ぜひ以下より会員登録をお願いします!
ご登録いただくと、すべてのデータやコンテンツにアクセス可能になります。
2 Comments
顧客毎のマトリックスを作成していますが、
2022年のランキングを基準としてその顧客の2021年、2020年の売上も表示したいと思っています。
例)
2022年 A社 500円
B社 800円
C社 300円
2021年 A社 200円
B社 300円
C社 800円だった場合
マトリックス表では
顧客名 2022年 2021年
B社 800 300
A社 500 200
C社 300 800
と並んでほしいのですが、どのようにしたらそうなるのかわかりません。
ご教示いただけますでしょうか。
こんにちは!これはPower BIのマトリックスビジュアルを使えば実現できるかなと思います。
行に顧客名、列に年、値に売上を入力して試してみて下さい