2016-08-25 92 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

相关问题