2016-08-25 182 views
1

如何使用PowerQuery訪問與PowerQuery關聯的元數據?當數據懸停在右側「工作簿查詢」列表中的查詢上時顯示此數據,顯示諸如「上次刷新」等字段。使用Power Query檢索Power Query表元數據(Excel 2016)

應用程序:我有一個Excel工作簿,它將幾十個來自各種來源,然後由其他下游工作簿使用。我想要創建的是這個輸入工作簿中的一個表格,用於在工作簿中顯示每個輸入表的Power Query的元數據,例如表格最後刷新的時間,具有多少條記錄等等,用於驗證目的。例如,如果我知道某個文件預計只有64條記錄,則只要遇到更多或更少的記錄,我就可以標記。

我已經廣泛搜查,包括許多博客,高科技板,amazon.com和以下內容:

介紹功率查詢(非正式地稱爲「M」)公式語言https://msdn.microsoft.com/en-us/library/mt270235.aspx

功率查詢(非正式地稱爲「M」)公式參考https://msdn.microsoft.com/en-us/library/mt211003.aspx

2016年8月31日更新:看起來噸他以編程方式訪問Power Query元數據的功能尚不存在。我希望最終可以得到Power Query表的派克類似於Excel中的PivotTable.RefreshDate屬性。 (這也將是不錯的有屬性鏈接表。)在我所解決的解決辦法是沿着加上一欄,每個功率查詢的範圍如下:

#"Added Refresh Date" = Table.AddColumn(Source, "RefreshDate", each DateTime.LocalNow())

我可以然後從表中的任何記錄的字段RefreshDate中檢索查詢表的刷新日期。我對這種方法的困難是它增加了計算時間和文件大小。

回答

1

要查找輸入表中有多少條記錄,您是否嘗試導入excel文件並查看錶的rowcount?

數據>獲取&變換>新查詢>從文件>從工作簿將給你一個如何使用Excel.Workbook庫函數的例子。


另一方面,我不知道對excel工作簿中上次刷新細節的支持。

我將.XLSX重命名爲.ZIP,並在xl\connections.xml內部有一個帶有某些元數據的Microsoft.Mashup.OleDb.1數據連接,但似乎沒有任何「最後刷新」時間。

您可以在包含工作簿文件的文件夾上使用Folder.Contents,並查看整個文件的Data Modified列,如果足夠了?

+0

謝謝,@Carl。一些很好的建議。然而,我試圖做的是設置一些驗證的東西,專門圍繞Power Query查詢本身,即查詢最後刷新時,查詢檢索到多少列,返回多少記錄等等,我然後可以與這些項目的期望值進行比較,例如當最近一次刷新日期大於六個月前設置警告標誌等。由於最後刷新出現在彈出窗口中,當我將鼠標懸停在右側「工作簿查詢」選項卡中的查詢名稱上時,我發現必須有一種方法可以訪問該數據。 – XLT

+0

@XLT同意,數據必須在工作簿或緩存文件夾中。另一方面,這可能不是記錄或支持的元數據。即使你可以找到一些方法來提取最後刷新,可能會在未來破... –

+0

也許我應該離開出血的邊緣。除其他事項外,我正在尋求的是[PivotTable.RefreshDate](https://msdn.microsoft.com/en-us/library/office/ff834610.aspx)屬性的M版本,但您的觀點很好。 – XLT

相關問題