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

Power Query中根据索引列表删除列的M代码实现需求

在Power Query中通过列索引列表删除指定列

核心思路

先建立所有列的索引与列名的映射,筛选出不在待删除索引列表中的列名,最后保留这些列即可实现需求。以下是具体的M代码实现:

完整M代码示例

假设你的数据源表名为Source,待删除的列索引列表为MyList = {1,2},直接将以下代码整合到你的查询中:

let
    // 定义待删除的列索引列表(替换为你实际获取的列表)
    MyList = {1,2},
    // 获取所有列的索引与列名的映射表
    ColumnIndexMap = Table.FromList(
        Table.ColumnNames(Source),
        Splitter.SplitByNothing(),
        {"ColumnName"},
        null,
        ExtraValues.Error
    ) |> Table.AddIndexColumn("Index", 0, 1, Int64.Type),
    // 筛选出需要保留的列名(排除待删除索引对应的列)
    KeepColumns = ColumnIndexMap
        |> Table.SelectRows( each not List.Contains(MyList, [Index]) )
        |> Table.Column("ColumnName"),
    // 保留指定列,得到最终结果
    Result = Table.SelectColumns(Source, KeepColumns)
in
    Result

适配你的实际需求

你已经完成了"获取值相同列的索引"步骤,只需将代码中的MyList = {1,2}替换为你获取到的索引列表即可,无需调整其他逻辑。

注意:Power Query的列索引默认从0开始,与你给出的示例规则一致,无需额外转换索引值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 19:10:35