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

使用Power Query多列扩展合并Excel表格问题求助

Excel 365 Power Query 实现多行转多列合并需求

按你已完成左外部连接的基础,要把同一Name对应的多条Question转成Question 1、Question 2这类多列,按以下步骤操作:

步骤1:给嵌套表添加索引列

左连接后,Table2会以嵌套表的形式存在于合并结果中。先给每个嵌套表添加从1开始的索引,用来标记Question的顺序:

// 替换"MergedTable"为你实际的合并表名称,"Table2"为嵌套表列名
AddIndexToNested = Table.TransformColumns(MergedTable, {{"Table2", each Table.AddIndexColumn(_, "Index", 1, 1)}})

步骤2:展开嵌套表的必要字段

把嵌套表中的Question和新增的Index列展开成普通列:

ExpandedTable = Table.ExpandTableColumn(AddIndexToNested, "Table2", {"Question", "Index"}, {"Question", "Index"})

步骤3:透视表实现多行转多列

通过透视操作,将Index的不同值转为独立列,值对应Question内容:

PivotedResult = Table.Pivot(ExpandedTable, List.Distinct(ExpandedTable[Index]), "Index", "Question")

步骤4:重命名列(可选)

把默认的数字列名改成Question 1、Question 2的格式:

FinalTable = Table.RenameColumns(PivotedResult, 
    List.Transform(List.Skip(Table.ColumnNames(PivotedResult), 3), 
        (colName) => {colName, "Question " & colName}
    )
)

完整M代码示例

把以上步骤整合,替换对应表名和列名即可直接使用:

let
    Source = MergedTable, // 替换为你的合并表
    AddIndexToNested = Table.TransformColumns(Source, {{"Table2", each Table.AddIndexColumn(_, "Index", 1, 1)}}),
    ExpandedTable = Table.ExpandTableColumn(AddIndexToNested, "Table2", {"Question", "Index"}, {"Question", "Index"}),
    PivotedResult = Table.Pivot(ExpandedTable, List.Distinct(ExpandedTable[Index]), "Index", "Question"),
    FinalTable = Table.RenameColumns(PivotedResult, 
        List.Transform(List.Skip(Table.ColumnNames(PivotedResult), 3), 
            (colName) => {colName, "Question " & colName}
        )
    )
in
    FinalTable

说明:如果你的Table1字段数不是3个(Name、Industry、Date),调整List.Skip里的数字即可(跳过Table1的字段数量)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 20:30:56