You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 21:46:05