Power Query如何快速批量添加自定义名称空列?代码报错如何解决?
Power Query批量添加自定义名称空列问题解决方案
报错原因
你现有代码的问题出在新增列的数据源长度不匹配:{{null}, {null}, {null}}中的每个子列表仅包含1个null值,和原有表的行数不一致。Table.FromColumns要求所有传入的列的元素数量完全匹配,长度不一致时Power Query会自动对齐补全,就会出现你遇到的多余行异常,错误输出效果如下:
预期输出效果应为新增列所有行均为null,无多余行:
高效批量添加方案
你不需要逐列添加修改名称,以下两种方案都可以一次性添加12个自定义名称的空列,按需选择即可:
方案1:修复Table.FromColumns写法(性能最优,适合大表)
先自动生成和原表行数一致的空列集合,再拼接成新表:
= let // 替换为你的上一步步骤名 原表 = #"Prev Step", // 按需求修改为你要的12个自定义列名 新增列名列表 = {"Empty1", "Empty2", "Empty3", "自定义列4", "...", "自定义列12"}, // 批量生成和原表行数一致的全null列 空列集合 = List.Transform(新增列名列表, each List.Repeat({null}, Table.RowCount(原表))) in Table.FromColumns( Table.ToColumns(原表) & 空列集合, Table.ColumnNames(原表) & 新增列名列表 )
方案2:批量迭代添加列(逻辑简单,不易踩坑)
用List.Accumulate迭代执行添加列操作,不需要处理列长度匹配问题:
= let // 替换为你的上一步步骤名 原表 = #"Prev Step", // 按需求修改为你要的12个自定义列名 新增列名列表 = {"Empty1", "Empty2", "Empty3", "自定义列4", "...", "自定义列12"}, // 迭代添加所有空列 批量加列 = List.Accumulate(新增列名列表, 原表, (临时表, 当前列名) => Table.AddColumn(临时表, 当前列名, each null)) in 批量加列
内容的提问来源于stack exchange,提问作者Imans314
相关产品推荐
相关产品推荐

