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