最近はEXCELでもPowerQueryを使う機会も多くなってきました。
しかし通常の操作でフォルダやファイルをリンク扱いで指定した場合、ファイルが絶対パスとなるため、今回は少し工夫して、上位フォルダ構成が変わっても相対パスのファイルであれば読み込みができる方法を解説します。
EXCELのPowerQueryで相対パスのフォルダを指定する手順
今回のケースはPowerQuery本体と同じフォルダ階層にあることを想定です。
以降手順。

①普通にローカルで絶対パスのままいったんEXCELを追加しておく
②EXCELに適当にシートを新規追加しといて
セルに(例ではB1)に以下数式を記述し、現在のフォルダパスを表示
=CELL("filename")
さらに 数式 → 名前の管理 とし 名前をフォルダパスとして OKボタンを押し、名前登録する。

③PowerQueryで上部メニューから
表示→詳細エディタ で M言語を表示します。

④元の 「ソース =」 の部分1行を 以下コードの3行に書き換える
ファイルパス = Excel.CurrentWorkbook(){[Name="フォルダパス"]}[Content]{0}[Column1],
フォルダ = Text.BeforeDelimiter(ファイルパス, "["),
ソース = Excel.Workbook(File.Contents(フォルダ & "aaa.xlsx"), null, true),
フォルダ = Text.BeforeDelimiter(ファイルパス, "["),
ソース = Excel.Workbook(File.Contents(フォルダ & "aaa.xlsx"), null, true),
赤い部分は 実際のEXCELファイル名に書き換え
以上で、上位のフォルダ名が変わっても同じ階層や下位のフォルダ内のファイルであれば、相対パスとしてリンク切れせず、ファイルを読み込みすることができます。



コメント