ファイル名やシート名が毎回変わり、そのたびにPower Query内で修正・更新を行っていませんか?
こうした手間を軽減するためにPower Queryでは、相対パスを利用してファイルやシートを参照する方法があります。
今回は、この相対パスを用いた参照方法について詳しく解説していきます。
相対パスでファイル・シートを参照する方法
手順は2通りありますが、どちらを選択しても問題ありませんので、わかりやすい方で設定してください。
1.テーブル形式で指定
ファイル名・シート名を入力後、挿入タブ > テーブル を選択し、テーブル形式にします。
テーブル名を自分で分かりやすいように変更するのがおすすめです。
後ほどこのテーブル名を使って、相対パスの設定をします。
Power Queryで通常通り、データの取得からファイルを読み込んでシートを選択します。
「データの変換」からPower Queryを編集します。
ホーム > 詳細エディターを開きます。
ソースの上側に下記コードを入力し、自分で設定した文字列に変更します。
コード内容の画像を確認しながら、それぞれ変数名・テーブル名・列名等変更してください。
ファイル名 =Excel.CurrentWorkbook(){[Name =”ファイルパス”]}[Content]{0}[ファイル名],
シート名 =Excel.CurrentWorkbook(){[Name =”ファイルパス”]}[Content]{0}[シート名],
<コード内容>
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],
「”(ダブルクォーテーション)」をつけると文字列になるため、削除してください。
完了ボタンをクリックし、詳細エディターを閉じます。
閉じて読み込むボタンをクリックすると、テーブルで入力したExcel・シート名で内容が反映されます。
2.名前の定義で指定
1.テーブル形式で指定する方法とほぼ同じですが、名前の定義で指定することもできます。
入力後、「名前の定義」を設定します。
セル名(B1など)が書かれている部分に直接入力することで定義することができます。
ファイル名やシート名など自分で分かりやすいように名前をつけます。
後ほどこの「名前の定義」名を使って相対パスを設定していきます。
Power Queryで通常通り、データの取得からファイルを読み込んでシートを選択します。
「データの変換」からPower Queryを編集します。
ホーム > 詳細エディターを開きます。
ソースの上側に下記コードを入力し、自分で設定した文字列に変更します。
色を付けている箇所を自分で作成した「名前の定義」で設定した名前に変更してください。
ファイル名 =Excel.CurrentWorkbook(){[Name =”ファイル名“]}[Content]{0}[Column1],
シート名 =Excel.CurrentWorkbook(){[Name =”シート名“]}[Content]{0}[Column1],
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],
「”(ダブルクォーテーション)」をつけると文字列になるため、削除してください。
完了ボタンをクリックし、詳細エディターを閉じます。
閉じて読み込むボタンをクリックすると、Excelで入力したExcel・シート名で内容が反映されます。
相対パスでの更新方法
テーブル形式もしくは名前の定義で指定した範囲にファイル名・シート名を入力し、データタブ > すべて更新ボタンをクリックすると、入力したファイル名・シート名のデータで更新されるようになります。
まとめ
今回はPowerQueryの相対パスでファイル・シートを参照する方法でした。
ファイル名やシート名がよく変わる場合、こちらを活用することで簡単に更新できるので、ぜひお試しください。
メルマガにご登録いただくと、Microsoft 365アプリやChatGPT、PCを活用した
自動化・効率化の方法や便利な機能の新着記事を定期的にお送りさせていただきます。
ぜひ、社内のDX推進や業務の効率化にお役立てください!
\ 月1+不定期配信中 /
みどりデジタルサポートでは、Microsoft365に関する研修を中心に、様々なサポートサービスを提供しています。主に、Power BI、Power Automate、Power Appsといったツールの研修を行っており、Microsoft365を導入しているがExcelやWord以外のツールも活用したいと考えている方に最適です。
詳細は以下ページをご覧ください。
さらに、私たちはWEBサイトからのデータスクレイピングサービスも提供しております。収集したデータをグラフにまとめ、より分析しやすい形でのレポートを提供します。データを効率的に活用し、ビジネスの意思決定を迅速かつ的確に行いたい企業様は、このサービスもご検討ください。
詳細は以下ページをご覧ください。
ご不明な点がございましたら、お気軽にお問い合わせください。