在 Excel Power Query 和 PowerBI 使用動態路徑
當初的資料來源是本機檔案,例如在某個目錄之下的 excel 檔、log 檔、csv 檔、txt 檔 ... 在搬動或重新命名整個資料夾、複制到隨身碟、或與他人共享查詢時,重新整理資料就會找不到資料來源!!
這是因為它們的來源數據是以「絕對路徑」的方式來連結,為了解決這個問題就必須手動修改來源路徑。 有沒有什麼方法可以"動態"取得路徑??
1.在 Excel Power Query 使用動態路徑
利用函數 cell 取得目前檔案的路徑 :
一開啟檔案就會自動更新公式以取得目前檔案路徑,從而達到動態路徑的效果
第 1 步–
以公式來檢索當前檔案路徑。當檔案目錄位置改變時,這個公式會自動更新
=LEFT(CELL("filename"),FIND("[",CELL("filename"))-2)
第 2 步–
接下來就是怎麼把這一儲存格的內容導入給 Power Query 使用了第一種方法,將其轉換為表格,欄標題我命名為“Path”,表格名稱命名為“DynamicPath”。
第 3 步–
接著不論是轉換為表格或使用定義名稱,接下來的步驟都一樣。從 資料→從表格/範圍→右鍵單擊第一行並選擇 向下切入 (Drill Down),這樣做會將路徑轉換為文本(變量)
如果是使用定義名稱的話,只有在紅字的地方不一樣。
letSource = Excel.CurrentWorkbook(){[Name="DynamicPath"]}[Content],Column1 = Source{0}[Column1],GetFolderFiles = Folder.Files(Column1)inGetFolderFiles
2.在 Power BI 中使用動態路徑
很不幸的是,在 Power BI 中沒有像 Excel 那樣一打開就可以去更新當前檔案所在目錄的函數功能,以致於動態檔案路徑是不可能的。
就算我可以在 BI 裡去導入一個更新當前目錄的 Excel 檔,但是...在 BI 同樣是要用絕對路徑的方式來引入......有沒有一種陷入無解循環的感覺
💡 此外,實際嘗試使用的結果,那個寫著動態路徑的 excel 檔在引入 BI 時,根本不會被開啟,路徑不會被更新
但是我們仍然可以設定「參數」的方式來設定根目錄路徑,這樣往後換電腦、根目錄換地方,只要修改參數內容,就能夠修改參照的資料來源,勉強算是半自動化吧!
設定流程
1.管理參數─新增參數
2.設定參數「名稱」及「目前的值」
3**.進階編輯器→修改查詢資料表的資料來源**
這樣之後整個資料夾換地方,就只要更改參數 sPath 目前的值即可
在 BI 裡的 M code 就相對單純很多,少了需要向 Excel 載入表格或名稱的步驟
let
Source = Folder.Files(sPath)
in
Source
留言
張貼留言