Power BIでSharePoint, OneDriveのフォルダにある複数ファイルを取り込みたい
はじめに
Power BIのデータソースとして、SharePointのドキュメントライブラリやOneDriveにある複数ファイルからデータを取り込む方法を記載する。
概要
大きく分けると下記手順になる。
- SharePointやOneDriveのサイトURLを取得する。
- Power BI Desktopで取得したサイトURLを指定して複数ファイルのデータを取り込む。
詳細
前提
-
SharePoint, OneDriveに複数ファイルが格納済みでありアクセス権限をもっている。
-
取り込みたい複数ファイルは特定のフォルダー内に存在する。(
SampleFolder) -
取り込みたい複数ファイルはCSVファイルのみである。(
dataA.csv/dataB.csv/dataC.csv)
dataA.csv dataB.csv dataC.csv ID NAME ID NAME ID NAME 1 hoge 4 fuga 7 piyo 2 hogehoge 5 fugafuga 8 piyopiyo 3 hogehogehoge 6 fugafugafuga 9 piyopiyopiyo
SharePointやOneDriveのサイトURLを取得する
-
ファイルが格納されているSharePointやOneDriveをブラウザで開く。
-
アドレスバーからサイトURLをコピーする。サイトURLに該当する部分のみを取得する。
SharePointの場合、アイコンのリンクのアドレスをコピーでもサイトURLを取得できる。
Power BI Desktopで取得したURLを指定して複数ファイルのデータを取り込む
-
Power BI Desktopで
データを取得-詳細を選択する。
-
SharePoint フォルダーのコネクタを選択して、接続をクリックする。
-
取得しておいたサイトURLを入力し、
OKをクリックする。
-
サイトURL先に格納されているコンテンツの一覧が表示されるので、
データの変換をクリックする。
-
Power Queryエディターで取り込みたい複数ファイルを絞り込む。
-
Folder Path列で特定のフォルダーのみにフィルターする。
-
Extension列でCSVファイルのみにフィルターする。
取り込みたい複数ファイルのみが表示される。

-
-
Power Queryエディターで
Content列のファイルの結合のアイコンをクリックする。
-
CSVファイルの仕様にあわせて設定し、
OKをクリックする。
複数ファイルのデータが結合されたテーブルが作成できる。

Tips
読み込みの高速化(SharePoint.Files -> SharePoint.Contents)
記載した手順では、データをSharePointを読み込む際に内部でSharePoint.Files関数が利用されている。
この関数を使用すると、読み込まれるサイトメタデータが原因で、更新速度が遅くなるおそれがある。

SharePoint.Files関数ではなく、SharePoint.Contents関数を利用することでより高速にSharePointサイトのコンテンツを読み込むことができる。
ただし、SharePoint.Contents関数を利用した場合、下記のようにサイトに存在するフォルダー単位でまとめられた状態で最初読み込まれる。

そのため、ファイルを絞り込む際にはContent列のTableよりデータを展開して、絞り込んでいく必要がある。
参考
Discussion