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

Excel Power Query:如何一步为多列批量添加数值

批量为多列添加数值的Power Query解决方案

为什么选中多列时「标准添加」功能会变灰?

这是Power Query的设计限制:「转换」选项卡下的「标准添加」功能仅支持单列操作,当选中多列时该功能会自动禁用,并非操作错误。


方案1:所有目标列添加相同数值

如果需要给指定的多列(比如所有数值列)添加同一个值,可以通过Table.TransformColumns批量处理,只需1个步骤:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Full Name", type text}, {"1979", Int64.Type}, {"1990", Int64.Type}, {"1997", Int64.Type}, {"2007", Int64.Type}, {"2010", Int64.Type}}),
    #批量添加相同值 = Table.TransformColumns(#"Changed Type", 
        List.Transform(List.RemoveMatchingItems(Table.ColumnNames(#"Changed Type"), {"Full Name"}), 
            each {_, (value) => value + 5, type number})
    )
in
    #批量添加相同值

说明:

  • List.RemoveMatchingItems用来排除不需要处理的列(比如这里的「Full Name」文本列)
  • List.Transform自动生成所有目标列的处理规则,统一添加数值5

方案2:不同列添加不同数值

如果每列需要添加的数值不同,可以直接在Table.TransformColumns中一次性定义所有列的处理规则,合并原来的多个步骤为1个:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Full Name", type text}, {"1979", Int64.Type}, {"1990", Int64.Type}, {"1997", Int64.Type}, {"2007", Int64.Type}, {"2010", Int64.Type}}),
    #批量添加不同值 = Table.TransformColumns(#"Changed Type", {
        {"1979", each _ + 5, type number},
        {"1990", each _ + 10, type number},
        {"1997", each _ + 20, type number},
        {"2007", each _ + 15, type number},
        {"2010", each _ + 30, type number}
    })
in
    #批量添加不同值

操作步骤:

  1. 打开Power Query编辑器,点击「高级编辑器」
  2. 删除原来的多个Added to Column步骤
  3. 替换为上述的#批量添加不同值步骤即可

进阶:用参数表管理增量值(适合大量列)

如果有30+列且数值经常变动,可以创建一个单独的参数表(比如包含「列名」和「增量值」两列),然后通过动态生成处理规则实现批量操作:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Full Name", type text}, {"1979", Int64.Type}, {"1990", Int64.Type}, {"1997", Int64.Type}, {"2007", Int64.Type}, {"2010", Int64.Type}}),
    #加载参数表 = Excel.CurrentWorkbook(){[Name="增量参数表"]}[Content],
    #生成处理规则 = Table.ToRecords(#加载参数表),
    #批量处理 = Table.TransformColumns(#"Changed Type", 
        List.Transform(#生成处理规则, 
            each {_[列名], (value) => value + [增量值], type number})
    )
in
    #批量处理

这样后续只需修改参数表的数值,无需改动M代码,维护更高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 04:10:56