【Power BI】データをエクスポートするボタンを作る

Power BIでデータをエクスポートするボタンを作成する

Power BIレポートを作成して納品したとき、「レポートとは別に元のデータをリストで出力したいんだけど…」

という要望をもらいました。

どうやら以下のような理由のようです。

  • BIレポートはPower BI Proライセンスがないと見れないので、一般ユーザーにも集計値を公表したい
  • レポートにはない、独自の切り口で分析したい

なるほど…確かにこのニーズはありそうですね。

しかし、「挿入」タブにあるボタンを使ってもどうやらデータのエクスポートはできないようです。

今回はPower Automateと連携してBIレポートのデータをエクスポートするボタンを作っていきます!

ボタンを作らずにデータをエクスポートする場合

BIレポートで作成されたグラフの右上の「・・・」から「データのエクスポート」を選択するとグラフのデータをCSVで出力することができます。

Power BIのグラフの右上の「・・・」からデータをエクスポートする

しかし、この方法だと以下のようなデメリットがあります。

ボタンを作成しない場合のデメリット

・ エクスポートの方法がユーザーにとってわかりにくい。

・ グラフに使われているデータ以外をエクスポートできない。

ふたつ目のデメリットについては、設定次第で基になっているデータも合わせてエクスポートすることができます。

しかし、必要な項目に絞ることができず、見せたくないデータも一緒に取得されてしまうリスクがあります

今回、ご紹介する方法だと、このメリットを完全に克服しています。

ボタンを作成するメリット

・ ボタンがあることでユーザーにわかりやすい

・ エクスポートする項目を自由に設定できる。

それでは、実際の作り方を見ていきましょう!

ボタンの作り方

データをエクスポートするボタンを作成は以下の3STEPで行います。

エクスポートするデータの設定
Power Automateのフローを作成

この記事で一番メインの部分になります。

ボタンの書式設定

ボタンに表示されるテキストやボタンの色などの書式を整えます。

※Power BIのデスクトップ版、クラウド版のどちらでもボタンの設置は可能ですが、一度はクラウドに発行している必要があります

パパ
パパ

それでは具体的に見ていきましょう!

ボタンの設置とデータの追加

デスクトップ版の場合「挿入」タブから「Power Automate」をクリックします。

挿入タブからPower Automateを選択

クラウド版の場合、編集モードに切り替えてから画面右側の「視覚化」のメニューからPower Automateのアイコンをクリックしましょう(デスクトップ版でもこの方法が使えます)。

Power BIのメニューからPower BIの再婚を選択

すると以下のようにボタンを作成するまでの手順が表示されます(この時点ではボタンの見た目をしていません)。

作成フローの表示

エクスポートしたい情報を画面右のフィールドから選択していきます。

エクスポートするデータの設定

これでエクスポートするデータの設定は完了です!

続けてPower Automateのフローを作成していきます。

Power Automateのフロー作成

フローを作成するために、挿入したPower Automateのオブジェクトの右上にある「・・・」から「編集」を選択します。

Power AutomateはあくまでPower BIから起動するので注意です。

Power Automateの編集画面を開く

フローの作成画面ができるので、おすすめのテンプレートから「Power BIからExcelテーブルを更新する」を選びましょう。

テンプレートからフローを選ぶ

表示されたフローからExcelのアクションを削除して、「Power BIでのボタンのクリック時」だけ残します。

以下の画面のようになったら、「新しいステップ」でアクションを追加していきます。

フローを削除する

「CSVテーブルの作成」を追加し、「動的なコンテンツ」から「Power BI テーブル」を選択します。

動的なコンテンツからPower BIテーブルを選択

Power BIで取得した情報がセットされました。

CSVテーブルの作成のフローを選択

つぎに「変数を初期化する」のフローを追加し、ファイル名に利用する現在の日本時間を取得します。

それぞれの項目は以下のように入力します。

  • 名前 : 自由に決めてください
  • 種類:文字列
  • 値:formatDateTime(convertTimeZone(utcNow(),’UTC’,’Tokyo Standard Time’),’yyyyMMdd_HHmmss’)
日本の現在時刻を取得するアクション

「値」の項目については、以下のように必ず式として入力してください。

式の挿入方法

数式の意味はざっくり説明すると以下のようになっていますが、詳細は省きます。

  1. utcNow() で現在の世界標準時刻を取得
  2. convertTimeZone() で標準時刻から日本時刻へ変換
  3. formatDateTime()で表示形式を「yyyyMMdd_HHmmss」の形式に変更

次に、SharePoint上にファイルを作成します。

「ファイルの作成」のフローを追加し、それぞれの項目を入力していきます。

SharePointでファイルを作成するフロー

「サイトのアドレス」と「フォルダーのパス」は右端のマークをクリックすると候補が表示され、その中から選択することができます。

ファイル名は先ほど取得した現在の日本時刻を使って「日本の現在時刻_data.csv」とします。

ファイル名に日本の時刻を入れたのはファイル名の重複を防ぐためです。

ファイルコンテンツは「CSVテーブルの作成」のアクションの出力結果を選択します。

ここまでのフローを確認してみましょう!

フローの全体

正しく設定されたことを確認たら画面右上の「保存して適用」をクリックしてください。

保存して適用する

ボタンの書式設定

ここまできたら、あともう少しです!

ボタンの色や表示されるテキストを「ビジュアルの書式設定」で変更しましょう。

ビジュアルの書式設定画面

これでボタンの完成です!

エクスポートボタン

さっそくボタンを押して動作確認しましょう(Power BI DesktopではCtrlを押しながらクリックします)。

ボタンを押して作成されたデータ

ちゃんとファイルが作成されていますね!

CSVファイルが文字化けする場合

先ほどの手順で完成!といきたいところですが、エクスポートする内容に日本語が含まれている場合は注意が必要です。

データを確認すると日本語の部分が文字化けしているではありませんか!

Excelで開くと文字化けしたCSVファイル

これを直すにはフローに少し手を加える必要があります。

「ファイルの作成」のアクションの「ファイルコンテンツ」欄に以下の式を加えてください。

// ↓追加するコード
decodeUriComponent('%EF%BB%BF')

原因は文字コードがUTF-8になっていることですが、詳細な説明は省きます。

詳しく知りたい方は以下の記事を参考にしてください。

式を挿入した後は以下のようになります。

文字化けを防ぐための式を挿入後のアクション

もう一度ボタンを押して確認してみます。

文字化けが解消されたCSVデータ

無事に文字化けが直って日本語も正しく表示されています!

あこすけ
あこすけ

今度こそ完成だーー!

ちなみに、一度作成したフローはPower Automate側からも編集することができます。

今日はここまで!

次回は出力するデータが1,000行を超えてしまう場合の対処法について説明します!

ここまで読んでいただき、ありがとうございました!