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

如何使用List.Alternate函数规整Excel中重复3列的表格?

提取重复多组列并合并为标准三列表格(Power Query方案)

核心思路

通过列索引分组提取对应列,再将同类型列的数据纵向合并,最终生成仅含「问题」「答案」「类别」的表格。

具体步骤(Power Query编辑器中操作)

  1. 加载数据到Power Query
    选中Excel表格数据,点击「数据」选项卡 → 「从表格/区域」,进入Power Query编辑器。

  2. 实现列提取与合并
    打开「高级编辑器」,替换原有代码为以下逻辑(注意替换表格名称为你的实际表名):

    let
        源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], // 替换"表1"为你的表格名称
        列名列表 = Table.ColumnNames(源),
        // 按索引分组提取三类列
        问题列列表 = List.Select(列名列表, (col) => List.PositionOf(列名列表, col) mod 3 = 0),
        答案列列表 = List.Select(列名列表, (col) => List.PositionOf(列名列表, col) mod 3 = 1),
        类别列列表 = List.Select(列名列表, (col) => List.PositionOf(列名列表, col) mod 3 = 2),
        // 合并同类型列的所有数据为单列表
        合并问题列 = List.Combine(Table.ToColumns(Table.SelectColumns(源, 问题列列表))),
        合并答案列 = List.Combine(Table.ToColumns(Table.SelectColumns(源, 答案列列表))),
        合并类别列 = List.Combine(Table.ToColumns(Table.SelectColumns(源, 类别列列表))),
        // 创建最终表格
        结果表 = Table.FromColumns({合并问题列, 合并答案列, 合并类别列}, {"问题", "答案", "类别"})
    in
        结果表
    
  3. 可选:过滤空行
    若需要移除所有字段均为空的行,在结果表步骤后添加:

    过滤空行 = Table.SelectRows(结果表, each not List.IsEmpty(List.RemoveNulls({[问题],[答案],[类别]})))
    

    并将in后的内容改为过滤空行。

  4. 加载回Excel
    点击「关闭并上载」,将处理后的表格导入Excel。

补充说明

List.Alternate更适合单列表的间隔提取,而你需要同时处理3组间隔列,用列索引分组+合并的方式逻辑更直观,也更容易根据实际列位置调整规则。

内容的提问来源于stack exchange,提问作者Cust-Omer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 13:32:29