Power Query如何提取当前文件中动态CENTList工作表数据?
解决Power Query获取当前工作簿CENTList工作表数据的问题
错误原因
你之前的代码错误在于:Excel.CurrentWorkbook(){[Name="CENTList"]}是在当前工作簿的查询/结构化表集合中查找目标项,但CENTList是普通工作表,不属于这个集合,因此会提示找不到。
解决方法
方法一:直接引用工作表数据(适用于结构化表场景)
如果CENTList已经被设置为结构化表(通过Excel的「插入→表格」创建),可以直接用以下代码获取数据:
let Source = Excel.CurrentWorkbook(){[Name="CENTList"]}[Content] in Source
方法二:动态加载当前工作簿的普通工作表
如果CENTList是普通工作表(未转为结构化表),按以下步骤操作:
- 在当前工作簿任意空白单元格输入公式
=CELL("filename"),选中该单元格后,在公式栏左侧的名称框输入WorkbookPath并回车,创建命名范围。 - 使用以下Power Query代码:
let // 获取当前工作簿完整路径 CurrentWorkbookPath = Excel.CurrentWorkbook(){[Name="WorkbookPath"]}[Content]{0}[Column1], // 加载工作簿文件 Source = Excel.Workbook(File.Contents(CurrentWorkbookPath), null, true), // 提取CENTList工作表数据 CENTListData = Source{[Item="CENTList", Kind="Sheet"]}[Data], // 将首行设为表头 PromotedHeaders = Table.PromoteHeaders(CENTListData, [PromoteAllScalars=true]), // 保留A至X列(可选) KeepTargetColumns = Table.SelectColumns(PromotedHeaders, {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X"}) in KeepTargetColumns
内容的提问来源于stack exchange,提问作者ImFabien75
相关产品推荐
相关产品推荐

