この記事では、Power BIのデータ格納場所をSharePointフォルダへ変更する方法について、ヘルパークエリの説明とあわせて解説します。
- Power BIのデータ格納場所をSharePointフォルダへ変更する方法
- ヘルパークエリとは何か?
- ヘルパークエリの活用方法
Youtube動画で見たい方は、こちらからどうぞ!
データを格納する場所について
データの格納場所とは?
Power BIでレポートを作成する際の元データとして、ExcelやCSV等のファイルを取得することも多いと思います。
取得するファイルを格納する場所の候補は、いくつかあります。

Power BIレポートは、毎月システムからデータ出力する等、データを更新する場合も多いと思うので、SharePointフォルダ、Teamsのフォルダ、OneDrive等にファイルを格納するのがおすすめです。
SharePointフォルダ、Teamsフォルダ、OneDriveはどれも、SharePointフォルダからのデータ取得になります。
SharePointフォルダからファイルを取得し、データの自動更新(スケジュール更新)設定をする方法については、以下の記事を参考にしてください。

データ格納場所の変更例
データーソースの変更例としては以下のようなパターンがあり、それぞれPower Queryでの修正方法が異なる点に注意しましょう。

ローカルフォルダ間で格納場所を変更する場合、Power Queryでは「適用したステップ」の「ソース」の設定(⚙)から、フォルダパスを変更するのみです。
一方で、SharePointフォルダへ格納場所を変更する場合、「ソース」の変更と「ヘルパークエリ」の変更も必要な点に注意しましょう。
特にローカルフォルダ➡SharePointフォルダの場合、「ソース」の設定(⚙)からではなく、式(M言語)自体の修正が必要なので、気を付けてください。
ヘルパークエリとは?
ヘルパークエリは、Power Queryで「Fileの結合」をした際に、自動的に作成されるクエリです。
フォルダーをデータソースにしている場合、基本的に複数のExcelやCSVファイルを格納し、ファイルの結合していることが多いと思います。

「Fileの結合」をすると、1ファイルずつ、ヘルパークエリのサンプルファイルで設定した処理(適用したステップ)がされ、最後に1つのテーブルに結合し、元のクエリに反映されます。

そのため「適用したステップ」で「ファイルの結合」をしている場合、データソースの変更だけではなく「ヘルパークエリ」の変更も必要になります。
基本的にはデータソースの置き場所を変えるのは面倒なので、誰がデータソースにアクセスできる必要があるのか、データ更新の必要があるか等を考えて、データの置き場所を決めましょう。
「ヘルパークエリ」は、1ファイルずつ処理したいステップを追加できたりもするから、結構便利なんだよ。
例えば以下のように、ヘルパークエリの「サンプルファイルの変換」で、ステップを追加し「月ベル順位」列を追加します。

すると、ヘルパークエリで1ファイル(1月分のデータ)ごとに、売上金額が多い順に「月別順位」が1位~4位の値で登録され、元の「Sales」クエリには全ファイルが結合された状態で反映されます。

これにより、例えば以下のように、ショップごとの月別順位をPower BIレポートに表示することができます。

フォルダー場所の変更方法
SharePointフォルダ ➡ SharePointフォルダ
SharePointフォルダに格納しているファイルを、別のSharePointサイトのフォルダに変更する場合の手順を説明します。
元の格納場所は、SharePointサイト「PowerBIData」のドキュメントフォルダ「SalesData」です。

これら5ファイルを、SharePointサイト「PowerBITest」のドキュメントフォルダ「SalesData」へ移動することにします。

1.Power BIデスクトップの「データの変換」から、Power Queryエディターを開きます。

2.適用したステップの「ソース」の設定(⚙)をクリックし、SharePointフォルダのURLを変更します。
※SharePointサイトの「ホーム」タブをクリックしたときの、URLをコピーします

格納しているフォルダ名等が異なる場合は、「フィルターされた行」のステップ等も変更しましょう。
3.最後のステップを選択してプレビューの更新をしてみると、「’サンプルファイル’クエリーでエラーが発生しました」と表示されています。

4.「ヘルパークエリ」の「サンプルファイル」を見てみます。
※この時エラーが発生していなくても、「ヘルパークエリ」の「サンプルファイル」を修正する必要があります。
5.先ほどと同様の手順で、適用したステップの「ソース」を変更します。
必要であれば、「フィルターされた行」のステップも変更します。

6.元のクエリ「SalesData」に戻り、適用したステップの一番最後のステップを選択し、エラーがないことを確認したら、ホーム>閉じて適用をクリックします。

ローカルフォルダ ➡ SharePointフォルダ
次に、ローカルフォルダに格納しているファイルを、SharePointサイトのフォルダに変更する場合の手順を説明します。
ローカルフォルダに格納されたCSVファイルを、SharePointサイト「PowerBITest」のドキュメントフォルダ「SalesData」へ移動することにします。

1.先ほどと同様、Power Queryを開き「新しいソース」から、新規にSharePointフォルダからのデータ取得を行います。
クエリは任意の名称に変更します。(以下の図では「Sales_Master」)

SharePointフォルダからのデータ取得方法については、以下の記事も参考にしてください。

データソースをローカル➡SharePointフォルダに変更する方法については、以下2つのやり方を紹介します。
- 元のクエリから、データマスタークエリを参照する
- 元のクエリ自体のソースのクエリを編集する
①データマスタークエリを参照する
1.元のクエリ「Sales」を選択し、適用したステップの「ソース」を「= Sales_Master」に変更します。
「Sales_Master」に含まれているステップは不要なので、「Sales」クエリからも削除します。

2.「Sales_Master」クエリはレポートでは使わないため、右クリックして「読み込みを有効にする」のチェックを外します。

これで、1つ目の方法は完了です。
SharePointフォルダからのデータ取得は「Sales_Master」クエリを新規に作り、元の「Sales」クエリは、「Sales_Master」クエリを参照しています。
その後の変換ステップがある場合は、「Sales」クエリの「ソース」以降に残しておけばOKです。
②元のクエリのソースを編集する
1.「Sales_Master」クエリから参照したくない場合、「Sales_Master」クエリを選択し、「詳細エディター」を開いて、クエリをコピーします。

2.元の「Sales」クエリの「詳細エディター」を開き、先ほどコピーしたクエリを貼り付けて「完了」をクリックします。
※「展開されたテーブル列」>「変更された型」以降のクエリがある場合は、残しておきます。

3.ヘルパークエリの「サンプルファイル」を選択し「ソース」の関数式を、「Sales」クエリの「ソース」の関数式からコピペします。

↓

4.フィルターのステップ等がある場合は、サンプルファイルにも追加します。

5.元の「Sales」クエリの最後のステップを開いてみて、エラーが無ければOKです。

データマスターのクエリは、1つのデータソースから参照して、複数のクエリを作成する際にも便利だよ!
最後に
この記事では、Power Queryの「ヘルパークエリ」とは何かについて解説し、ローカルフォルダーや、SharePointフォルダーに格納したデータの置き場所を変更する方法について説明しました。
「Fileの結合」をしている場合、元のクエリの「ソース」を変更したら、ヘルパークエリのサンプルファイルの「ソース」も変更が必要です。
元のクエリへの影響が少ない方法として、「データマスター」クエリを作成し、元のクエリから参照する方法も検討しましょう。