1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Power BIでSharePointフォルダに置いたExcelファイルのシート名がバラバラで結合して取り込めない場合の対処法

Posted at

はじめに

SharePoint上に作成した特定のドキュメントフォルダに複数の同じフォーマットのファイルを置いて、それらを結合させるのはPower BIやExcelのPower Queryの得意技ですが、テーブル名やシート名が各フォルダで少しでも違うものがあると取り込まれずエラーとなってしまいます。この記事では簡易的ですがシート名が違っても取り込むことができるクエリの修正法法を照会します。

対象となる人

Power BIでSharePointフォルダからの取り込みを行いたい人。およびExcelでPower Queryをつかって同じようなことをしている人です。

準備と失敗例

SharePointのドキュメントライブラリに適当なフォルダを作り、内容は全く同じエクセルファイルを作成しました。
image.png
中身は各支店の日別の売上金額が入力されていて、毎日1ファイルづつ作成されてフォルダに保存されていくイメージです。
image.png
3つ置いたファイルのうち、一つだけ()、シート名とテーブル名を書き換えてやります。今回は「20230503売上.xlsx」のファイルだけ、シート名を「Sheet1」→「Sheet1_余計なもの」、テーブル名を「テーブル1」→「テーブル1_余計なもの」に書き換えました。担当者が勝手に修正しちゃった、というイメージのサンプルファイルです。
image.png

Power BI で新しいソースとして「SharePointフォルダ」から取り込みます。ファイルを置いたフォルダまでフィルタで絞り込むと、先ほどの3つのファイルが現れました。
image.png
Content列の右側にある「↓↓」ボタンをクリックして展開、結合をさせます。
シートとテーブルのどちらから取り込むかが選択できます。まずはSheet1を選択します。サンプルファイルの指定が「最初のファイル」となっていることから、シート名も20230501売上.xlsxを参照しているため「Sheet1」になっていることがわかります。
image.png
「OK」を選択して進むと、
image.png
確かにファイルの中身が結合去れて並んでいますが、20230503売上.xlsx ファイルの名前が表示されているべきところが「Error」となっています。

お察しのとおり、いつも同じ場所に同じフォーマットでおかれるべきファイルのシートを誰かが勝手に変更すると、こうなります。

解決法(シート名が違う場合)

image.png
SharePointフォルダを指定して展開、結合する際、裏側では「ヘルパークエリ」が使われています。自動的に作成される「サンプルファイルの変換」という名前のクエリの中身を見てみます。右クリックして「詳細エディタ」を選択します。
image.png
記述されているMクエリの中に、以下のような記述があります。ここでどのシートを取り込むかを指定しているんですね。

Sheet1_Sheet = ソース{[Item="Sheet1",Kind="Sheet"]}[Data],

ここを、下のように変更してやります。

Sheet1_Sheet = ソース{0}[Data],

するとあら不思議。さっきまで取り込まれなかった3日目のシートも、名前が他とそろっていないにもかかわらず取り込むことができました。
image.png

解決法(テーブル名が違う場合)

先ほどと同じく、今度は「テーブル1」を選択してみます。最初のファイルをサンプルにしているので、一つだけ変更したテーブル名はここには表示されていません。
image.png
テーブルの場合も結果は全く同じでした。シートの時と同じように、「サンプル ファイルの変換」を「詳細エディタ」で開いてみましょう。
image.png
テーブルの場合はソースがこのような記述になっていました。
image.png

テーブル1_Table = ソース{[Item="テーブル1",Kind="Table"]}[Data]

テーブルの場合0ではうまくいかなかったので、1に書き換えてやりました。

テーブル1_Table = ソース{1}[Data]

これでテーブル名がバラバラでも列がそろっていることで結合することができました。
image.png

まとめ

自動的にSPOフォルダに保存されるような場合には勝手にシート名やフォルダ名が変わることがないでしょうが、手作業で入力しているような場合には変わってしまうケースはよくあること。とりあえずの対処ですが知っておくと便利な手法です。
ただし、シート名やテーブル名を指定せず曖昧な形で取り込むので、結果に不具合がないか慎重にチェックをお願いします。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?