📊

Power BIでSharePoint, OneDriveのフォルダにある複数ファイルを取り込みたい

2024/05/08に公開

はじめに

Power BIのデータソースとして、SharePointのドキュメントライブラリやOneDriveにある複数ファイルからデータを取り込む方法を記載する。

概要

大きく分けると下記手順になる。

  • SharePointやOneDriveのサイトURLを取得する。
  • Power BI Desktopで取得したサイトURLを指定して複数ファイルのデータを取り込む。

詳細

前提

  • SharePoint, OneDriveに複数ファイルが格納済みでありアクセス権限をもっている。

  • 取り込みたい複数ファイルは特定のフォルダー内に存在する。(SampleFolder)

  • 取り込みたい複数ファイルはCSVファイルのみである。(dataA.csv/dataB.csv/dataC.csv)

    SharePointFolderDocument

    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を取得する

  1. ファイルが格納されているSharePointやOneDriveをブラウザで開く。

  2. アドレスバーからサイトURLをコピーする。サイトURLに該当する部分のみを取得する。
    SharePointの場合、アイコンのリンクのアドレスをコピーでもサイトURLを取得できる。

    SharePointURL

Power BI Desktopで取得したURLを指定して複数ファイルのデータを取り込む

  1. Power BI Desktopでデータを取得-詳細を選択する。

    PowerBIDesktopGetData

  2. SharePoint フォルダーのコネクタを選択して、接続をクリックする。

    PowerBIDesktopSharePointFolderConnector

  3. 取得しておいたサイトURLを入力し、OKをクリックする。

    PowerBIDesktopSharePointFolderConnectorInputSiteURL

  4. サイトURL先に格納されているコンテンツの一覧が表示されるので、データの変換をクリックする。

    PowerBIDesktopSharePointFolderConnectorContentList

  5. Power Queryエディターで取り込みたい複数ファイルを絞り込む。

    1. Folder Path列で特定のフォルダーのみにフィルターする。

      PowerBIDesktopPowerQueryFilterFolderPath

    2. Extension列でCSVファイルのみにフィルターする。

      PowerBIDesktopPowerQueryFilterExtenstion

    取り込みたい複数ファイルのみが表示される。

    PowerBIDesktopPowerQueryFilterResult

  6. Power QueryエディターでContent列のファイルの結合のアイコンをクリックする。

    PowerBIDesktopPowerQueryDeployContent

  7. CSVファイルの仕様にあわせて設定し、OKをクリックする。

    PowerBIDesktopPowerQueryJoinFile

    複数ファイルのデータが結合されたテーブルが作成できる。

    PowerBIDesktopPowerQueryJoinFileResult

Tips

読み込みの高速化(SharePoint.Files -> SharePoint.Contents

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

PowerBIDesktopPowerQuerySharePointFilesFunction

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

PowerBIDesktopPowerQuerySharePointFilesFunctionResult

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

参考

https://learn.microsoft.com/en-us/power-query/connectors/sharepoint-folder

https://learn.microsoft.com/ja-jp/training/modules/modern-analytics-teams/3-sharepoint

https://learn.microsoft.com/ja-jp/powerquery-m/sharepoint-files

https://learn.microsoft.com/ja-jp/powerquery-m/sharepoint-contents

https://learn.microsoft.com/ja-jp/training/modules/modern-analytics-teams/3-sharepoint

BIによる業務改善推進

Discussion