PowerQuery相対パスを用いたファイル・シートの参照方法

ファイル名やシート名が毎回変わり、そのたびにPower Query内で修正・更新を行っていませんか?
こうした手間を軽減するためにPower Queryでは、相対パスを利用してファイルやシートを参照する方法があります。
今回は、この相対パスを用いた参照方法について詳しく解説していきます。

目次

相対パスでファイル・シートを参照する方法

手順は2通りありますが、どちらを選択しても問題ありませんので、わかりやすい方で設定してください。

1.テーブル形式で指定

STEP
ファイル名・シート名を入力

ファイル名・シート名を入力後、挿入タブ > テーブル を選択し、テーブル形式にします。
テーブル名を自分で分かりやすいように変更するのがおすすめです。
後ほどこのテーブル名を使って、相対パスの設定をします。

STEP
Power Queryでデータを読み込み

Power Queryで通常通り、データの取得からファイルを読み込んでシートを選択します。
「データの変換」からPower Queryを編集します。

STEP
相対パスを作成

ホーム > 詳細エディターを開きます。

ソースの上側に下記コードを入力し、自分で設定した文字列に変更します。
コード内容の画像を確認しながら、それぞれ変数名・テーブル名・列名等変更してください。

ファイル名 =Excel.CurrentWorkbook(){[Name ="ファイルパス"]}[Content]{0}[ファイル名],
シート名 =Excel.CurrentWorkbook(){[Name ="ファイルパス"]}[Content]{0}[シート名],

<コード内容>

STEP
ソースにファイル名・シート名を代入

STEP3でファイル・シート名を読み込むことができたので、次にソース・シート選択部分を変更します。
3・4行目にファイル名・シート名を選択する項目があるので、こちらを編集します。

ソース
ソース = Excel.Workbook(Web.Contents(“https://……/Book1.xlsx”), null, true),
これを下記のように変更します。
ソース = Excel.Workbook(Web.Contents(“https://……/“&ファイル名&.xlsx”), null, true),

「”(ダブルクォーテーション)」で囲っている部分は文字列で、変数を追加するには「&」を使用します。すべて半角で入力しないとエラーになるため注意が必要です。

ファイル名
Sheet1_Sheet = ソース{[Item=“Sheet1”,Kind=”Sheet”]}[Data],
ソースと同様に下記変更します。
Sheet1_Sheet = ソース{[Item=シート名,Kind=”Sheet”]}[Data],

「”(ダブルクォーテーション)」をつけると文字列になるため、削除してください。

STEP
完了・反映

完了ボタンをクリックし、詳細エディターを閉じます。
閉じて読み込むボタンをクリックすると、テーブルで入力したExcel・シート名で内容が反映されます。

2.名前の定義で指定

1.テーブル形式で指定する方法とほぼ同じですが、名前の定義で指定することもできます。

STEP
ファイル名・シート名を入力

入力後、「名前の定義」を設定します。
セル名(B1など)が書かれている部分に直接入力することで定義することができます。
ファイル名やシート名など自分で分かりやすいように名前をつけます。
後ほどこの「名前の定義」名を使って相対パスを設定していきます。

STEP
Power Queryでデータを読み込み

Power Queryで通常通り、データの取得からファイルを読み込んでシートを選択します。
「データの変換」からPower Queryを編集します。

STEP
相対パスを作成

ホーム > 詳細エディターを開きます。

画像に alt 属性が指定されていません。ファイル名: image-141-1024x604.png

ソースの上側に下記コードを入力し、自分で設定した文字列に変更します。

色を付けている箇所を自分で作成した「名前の定義」で設定した名前に変更してください。

ファイル名 =Excel.CurrentWorkbook(){[Name ="ファイル名"]}[Content]{0}[Column1],
シート名 =Excel.CurrentWorkbook(){[Name ="シート名"]}[Content]{0}[Column1],
STEP
ソースにファイル名・シート名を代入

STEP3でファイル・シート名を読み込むことができたので、次にソース・シート選択部分を変更します。
3・4行目にファイル名・シート名を選択する項目があるので、こちらを編集します。

ソース
ソース = Excel.Workbook(Web.Contents(“https://……/Book1.xlsx”), null, true),
これを下記のように変更します。
ソース = Excel.Workbook(Web.Contents(“https://……/“&ファイル名&”.xlsx”), null, true),

「”(ダブルクォーテーション)」で囲っている部分は文字列で、変数を追加するには「&」を使用します。すべて半角で入力しないとエラーになるため注意が必要です。

ファイル名
Sheet1_Sheet = ソース{[Item=“Sheet1”,Kind=”Sheet”]}[Data],
ソースと同様に下記変更します。
Sheet1_Sheet = ソース{[Item=シート名,Kind=”Sheet”]}[Data],

「”(ダブルクォーテーション)」をつけると文字列になるため、削除してください。

STEP
完了・反映

完了ボタンをクリックし、詳細エディターを閉じます。
閉じて読み込むボタンをクリックすると、Excelで入力したExcel・シート名で内容が反映されます。

相対パスでの更新方法

テーブル形式もしくは名前の定義で指定した範囲にファイル名・シート名を入力し、データタブ > すべて更新ボタンをクリックすると、入力したファイル名・シート名のデータで更新されるようになります。

まとめ

今回はPowerQueryの相対パスでファイル・シートを参照する方法でした。
ファイル名やシート名がよく変わる場合、こちらを活用することで簡単に更新できるので、ぜひお試しください。


メルマガにご登録いただくと、Microsoft 365アプリの便利機能やPower Automate活用術など、
業務効率化に役立つ情報をお届けします。実際の自動化活用事例も配信中!

DX推進業務改善のヒントにぜひお役立てください!

\ 月2+不定期配信中 /


みどりデジタルサポートでは、Microsoft 365の導入企業向けに、Power BI、Power Automate、Power Appsを中心とした研修やサポートサービスを提供しております。「ExcelやWord以外のMicrosoft 365ツールも活用したい」という企業様に最適な研修内容です。詳しいサービス内容や研修プランについては、資料をご一読ください!

\ 活用事例も掲載しています /

また、私たちはWEBサイトからのデータスクレイピングサービスも提供しており、収集したデータをグラフ化し、ビジネスの意思決定に役立つレポートを作成しています。効率的なデータ活用で迅速な意思決定をサポートしたい企業様には、ぜひこちらのサービスもご検討ください。

ご不明な点がございましたら、お気軽にお問い合わせください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次