在 Excel Power Query 和 PowerBI 使用動態路徑
使用 Excel Power Query 或 Power BI 一段時間後,發現到一件很惱人的事情: 當初的資料來源是本機檔案,例如在某個目錄之下的 excel 檔、log 檔、csv 檔、txt 檔 ... 在搬動或重新命名整個資料夾、複制到隨身碟、或與他人共享查詢時,重新整理資料就會找不到資料來源!! 這是因為它們的來源數據是以「絕對路徑」的方式來連結,為了解決這個問題就必須手動修改來源路徑。 有沒有什麼方法可以"動態"取得路徑?? 1.在 Excel Power Query 使用動態路徑 利用函數 cell 取得目前檔案的路徑 : 一開啟檔案就會自動更新公式以取得目前檔案路徑,從而達到動態路徑的效果 第 1 步 – 以公式來檢索當前檔案路徑。當檔案目錄位置改變時,這個公式會自動更新 =LEFT(CELL("filename"),FIND("[",CELL("filename"))-2) 第 2 步 – 接下來就是怎麼把這一儲存格的內容導入給 Power Query 使用了 有二種方式, 有兩種方式。一種是網路上你可以查到的 轉換為表格 ,另一種是老司機才知道的 定義名稱 。 第一種方法,將其 轉換為表格 ,欄標題我命名為“ Path ”,表格名稱命名為“ DynamicPath ”。 第二種方法, 定義名稱, 為單一儲存格或某一範圍命名,方便引用。我這裡是把 B5 儲存格命名為“ DynamicPath2 ”。 第 3 步 – 接著不論是 轉換為表格 或使用 定義名稱 ,接下來的步驟都一樣。 從 資料→從表格/範圍→右鍵單擊第一行並選擇 向下切入 (Drill Down),這樣做會將路徑轉換為文本(變量) 第 4 步 – 打開進階編輯器,添加黃色部份的 M code 如果是使用 定義名稱 的話,只有在 紅字的地方不一樣 。 let Source = Excel.CurrentWorkbook(){[Name="DynamicPath"]}[Content], Column1 = Source{0} [Column1] , GetFolderFiles = Folder.Files (Column1) ...