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

如何在Power Query中将四列表格转换为单行多列结构化数据

Power Query 表格结构转换实现方法

需求说明

原始表格为多行多列的分组键值对结构(每行包含两组键值:Column1/Column2为一组,Column3/Column4为一组),需转换为以键为列名、对应值为单元格内容的扁平单行表格。

方法一:图形界面分步操作

  1. 导入数据到Power Query:在Excel中选中原始表格,点击「数据」→「从表格/区域」,进入Power Query编辑器。
  2. 处理前两列的键值对:
    • 选中Column1和Column2,点击「转换」选项卡→「转置」。
    • 转置后选中第一行,点击「转换」→「将第一行用作标题」,得到包含Work Order Number、Work Order Title、Sector列的单行表格,将此查询重命名为「表1」。
  3. 处理后两列的键值对:
    • 返回原始查询,选中Column3和Column 4,重复步骤2的转置和设标题操作,得到包含Total Fee、Remaining Fee、Last Review列的单行表格,重命名为「表2」。
  4. 合并两个表格:
    • 点击「主页」→「合并查询」→「合并为新查询」,选择「表1」和「表2」,合并类型选「仅使用第一个表的行」,点击确定。
    • 在新查询中展开合并列的所有字段,即可得到目标结构的表格。

方法二:M代码一键处理

若要高效完成转换,可直接在Power Query的「高级编辑器」中替换以下代码(注意将Table1替换为你的原始表格名称):

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    // 提取前两列并转成键值表头
    LeftTable = Table.PromoteHeaders(Table.Transpose(Table.SelectColumns(Source,{"Column1", "Column2"})), [PromoteAllScalars=true]),
    // 提取后两列并转成键值表头
    RightTable = Table.PromoteHeaders(Table.Transpose(Table.SelectColumns(Source,{"Column3", "Column 4"})), [PromoteAllScalars=true]),
    // 合并两个单行表格为最终结构
    FinalTable = Table.FromRecords({Record.Combine({LeftTable{0}, RightTable{0}})})
in
    FinalTable

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 23:10:22