PowerQuery Excelファイルの置いたパスで実行させたい時


概要

Excelファイルを置いたPathを取得して、相対的にファイル一覧を取得してPower Queryを実行する為の方法。

やり方

  1. Excel 関数で、Power Queryに渡すためのデータを作っておく

    =LEFT(CELL("filename",A1),FIND("[",CELL("filename",A1))-2)
    

  2. Power Queryで、上述のデータを利用して、フォルダ一覧取得(ファイル取得とかでも)

    フォルダ一覧取得
    = Folder.Contents(
      (Excel.CurrentWorkbook(){[Name="Settings"]}[Content]){0}[対象Path]
    )
    

理解促進の為の要素分解

問題解決の近道は分解ですね。

  1. = (Excel.CurrentWorkbook())
  2. = (Excel.CurrentWorkbook(){0})
    = (Excel.CurrentWorkbook(){[Name="Settings"]})
  3. = (Excel.CurrentWorkbook(){[Name="Settings"]}[Content])
  4. = (Excel.CurrentWorkbook(){[Name="Settings"]}[Content]){0}
  5. = (Excel.CurrentWorkbook(){[Name="Settings"]}[Content]){0}[対象Path]