Power Query中List.Generate报错'prevTable未识别'及列扩展求助
问题解决:Power Query扩展嵌入表时的
prevTable未识别错误 错误原因
你遇到的Expression.Error: The name 'prevTable' wasn't recognized错误,核心是在List.Generate的迭代逻辑中,没有正确引用上一次迭代生成的prevTable对象——直接写prevTable会被当作全局变量,而不是当前迭代记录中的属性,必须用[prevTable]来引用。
另外你提到需要扩展Step Name和Step 1至Step 10列,但原代码里写的是ActionDet系列列,这部分也需要同步修正。
修正后的代码
let // 加载数据源 Source = Source_name, // 生成需要扩展的列名列表(StepDet 1至StepDet 10) columnsToExpand = List.Generate( () => [i = 1], each [i] <= 10, each [i = [i] + 1], each "StepDet " & Text.From([i]) ), // 迭代扩展每个嵌入表列 expandedTable = List.Last(List.Generate( () => [i = 0, prevTable = Source], each [i] <= List.Count(columnsToExpand)-1, each [ i = [i] + 1, // 关键修正:用[prevTable]引用上一次迭代的结果表 prevTable = Table.ExpandTableColumn( [prevTable], columnsToExpand{[i]}, // 修改为你需要的扩展列:Step Name + Step 1至Step 10 {"Step Name", "Step 1", "Step 2", "Step 3", "Step 4", "Step 5", "Step 6", "Step 7", "Step 8", "Step 9", "Step 10"}, // 生成带前缀的新列名,避免冲突 List.Transform( {"Step Name", "Step 1", "Step 2", "Step 3", "Step 4", "Step 5", "Step 6", "Step 7", "Step 8", "Step 9", "Step 10"}, each columnsToExpand{[i]} & "." & _ ) ) ], each [prevTable] )) in expandedTable
关键修改点说明
- 迭代扩展时,将
Table.ExpandTableColumn(prevTable, ...)改为Table.ExpandTableColumn([prevTable], ...),确保引用当前迭代记录中的上一步结果表。 - 替换扩展列列表为你需求的
Step Name和Step 1至Step 10,同步调整新列名生成逻辑。 - 保持原有的迭代框架,确保10个
StepDet列被依次扩展。
内容的提问来源于stack exchange,提问作者Rafadan
相关产品推荐
相关产品推荐

