Power BIにおけるデータソースのパラメーター化

Published: feedback 共有

こんにちは、Power BI サポート チームの呂です。

Power BI では、Power Queryのパラメーターを活用して、データセットのデータソースを動的に変更する方法があることをご存知ですか。パラメーターを使ってデータソースに接続し、パラメーターを編集することで、データソースを必要に応じて簡単に変更できます。これにより、異なる要件に対応する柔軟性を持ったレポートを作成し、レポートの再利用性と拡張性を向上させられます。
今回の記事では、SQL Serverを例に、データソースのパラメーター化の設定方法をご紹介いたします。

重要

本記事編集時点と実際の機能に相違がある場合がございます。予めご了承ください。

最新情報につきましては、参考情報として記載しておりますドキュメントをご確認ください。


目次


  1. データソースのパラメーター化の応用例
  2. データソースのパラメーター化設定手順
  3. パラメーターの変更方法
  4. Excelデータソースの場合
  5. パラメーターを適用した場合の動作

データソースのパラメーター化の応用例


・開発/テスト/本番など異なるデータソース環境の間で簡単に切り替えたい場合
・部門や地域ごとに異なるデータソースを使用している場合
・Power BI Serviceに発行されたデータセットのデータソースを切り替えたい場合


データソースのパラメーター化設定手順


※今回検証を行った環境では、1つのサーバーに「Northwind」と「test」という2つのデータベースを用意しています。

1.データソースのパラメーターを設定する前に、まずはPower Queryエディターの[表示]タブで、パラメーターの[常に許可]にチェックを入れます。

設定後は以下のように、データソースに接続する際に、固定の接続先だけでなく、サーバー名やデータベース名のパラメーターで作成し、設定可能になります。

2.SQL Serverの接続画面から[新しいパラメーター]を選択し、サーバー名やデータベース名のパラメーターを設定します。

※パラメーターの[種類]が[すべて]に設定されている場合、Power BI サービスでパラメーターを編集できない可能性がございますため、[テキスト]もしくは[10進数]に設定していただく必要がございます。

3.設定されたパラメーターを使って、SQL Serverデータベースに接続します。

以上で、データソースのパラメーター化設定が完了です!



パラメーターの変更方法


Power BI Desktopの場合

1.[ホーム]タブの[データの変換]より、[パラメーターの編集]を選択します。

2.ポップアップ画面から、データソースのパラメーターを変更できます。
※以下例では、データベース名のパラメーターを「Northwind」を「test」に変更しました。


Power BI サービスの場合

1.ワークスペースから、データセットの[・・・]>[設定]を選択します。

2.設定画面の[パラメーター]から、データソースのパラメーターを変更できます。


Excelデータソースの場合


本記事の前半では、接続時にデータソースのパラメーター化する方法をご紹介しましたが、実は、データソースのパラメーターは必ずしも接続時に設定する必要がなく、接続後にも[詳細エディター]より設定可能です。
例えば、Excelファイルの場合、接続時に特定の Excel ファイルをデータソースとして指定する必要がありますため、SQL Serverのように、接続画面からデータソースのパラメーターを設定できません。
その場合、Excelファイルへ接続後にパラメーターを設定することができますので、以下の例にて説明します。

1.[UFO_US.xlsx]というExcelファイルに接続しますと、[詳細エディター]では以下のように表示されます。

1
2
3
4
5
6
7
let
ソース = Excel.Workbook(File.Contents("C:\Users\lyuyue\Documents\UFO_US.xlsx"), null, true),
UFO_US_Sheet = ソース{[Item="UFO",Kind="Sheet"]}[Data],
昇格されたヘッダー数 = Table.PromoteHeaders(UFO_US_Sheet, [PromoteAllScalars=true]),
変更された型 = Table.TransformColumnTypes(昇格されたヘッダー数,{{"datetime", type text}, {"city", type text}, {"state", type text}, {"country", type text}, {"shape", type text}, {"duration (seconds)", type number}, {"duration (hours/min)", type text}, {"comments", type text}, {"date posted", type date}, {"latitude", type number}, {"longitude ", type number}})
in
変更された型

2.Power Query エディターの[ホーム]>[パラメーターの管理]>[新しいパラメーター]を選択します。

3.Excelファイルのファイルパス変更用のパラメーターを作成します。

4.[詳細エディター]を開き、2行目のありましたファイルパスの部分をパラメーター名に差し替えます。

1
2
3
4
5
6
7
let
ソース = Excel.Workbook(File.Contents(ファイルパス), null, true),
UFO_US_Sheet = ソース{[Item="UFO",Kind="Sheet"]}[Data],
昇格されたヘッダー数 = Table.PromoteHeaders(UFO_US_Sheet, [PromoteAllScalars=true]),
変更された型 = Table.TransformColumnTypes(昇格されたヘッダー数,{{"datetime", type text}, {"city", type text}, {"state", type text}, {"country", type text}, {"shape", type text}, {"duration (seconds)", type number}, {"duration (hours/min)", type text}, {"comments", type text}, {"date posted", type date}, {"latitude", type number}, {"longitude ", type number}})
in
変更された型

5.パラメーターの設定後は以下のように、接続先のファイルパスを変更することが可能になります。




パラメーターを適用した場合の動作


最後にExcelのサンプルファイルでのパラメーターを変更し、適用した動作についてご紹介します。
以下の通り、[ファイルパス]のパラメーターを編集することで、データソースを「US」と「US以外」のファイル間で、必要に応じて切り替え可能です。
同様のスキーマのデータソースが複数存在し、切り替えが必要である場合はぜひこの方法をご活用ください。

以上、本ブログが少しでも皆様のお役に立てますと幸いでございます。


参考情報



アンケートご協力のお願い
Japan CSS Support Power BI Blog では、作成する記事やブログの品質向上を目的に、匿名回答でのアンケートを実施しております。
ユーザー様のご意見・ご要望を参考に今後もお役に立てるブログを目指してまいりますので、ぜひご協力いただけますと幸いでございます。 

※ 所要時間は1分程度となります。
【ご協力のお願い】Microsoft Japan CSS Power BI Blog ご利用に関するアンケート

※本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。