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

如何用循环迭代参数列表并重构Power Query重复调用代码?

Power Query 重构重复调用为循环遍历实现

重构目标

将重复调用fnCheckId处理参数列表的代码,改为通过循环遍历ParametersList参数列表的实现,每次循环输出的表作为下一次循环的输入表。

重构后代码

let
    ParametersList = {"CustomerID","FirstName","LastName"},
    // 用List.Accumulate实现迭代循环,初始值为源表srcTbl,依次处理每个参数
    Result = List.Accumulate(
        ParametersList,
        srcTbl,
        (currentTbl, currentClm) => fnCheckId(currentTbl, currentClm)
    )
in
    Result

代码说明

  • List.Accumulate是Power Query实现迭代逻辑的核心函数,三个参数的作用:
    1. 第一个参数:要遍历的目标列表ParametersList
    2. 第二个参数:迭代的初始输入值,即第一次循环用的源表srcTbl
    3. 第三个参数:迭代处理逻辑,用当前循环的输入表currentTbl和当前参数currentClm调用fnCheckId,返回结果作为下一次循环的输入

相关依赖代码

fnCheckId函数

(tbl as table, clm as text)=>
let   
    #"Added Custom" = Table.AddColumn(tbl,"QA "&clm, each if Text.Length(Record.Field(_, clm))>3 then "Ok" else "Nok")    
in
    #"Added Custom"

源表定义(srcTbl)

srcTbl = Table.FromRows(
        {
            {1, "Bob", "Smith", "123-4567"},
            {2, "Jim", "Brown", "987-6543"},
            {3, "Paul", "Wick", "543-7890"}
        },
        {"CustomerID", "FirstName", "LastName", "Phone"}
    )

效果说明

重构后的代码和原重复调用逻辑完全一致:依次对CustomerID、FirstName、LastName三个字段执行检查,每次新增对应的QA 字段名列,标记字段内容长度是否大于3。

内容的提问来源于stack exchange,提问作者Denis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 17:35:16