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

求助:如何用Power Query提取多工作簿表头至主工作簿

Power Query批量提取报表表头并按文件分行展示

操作步骤

  1. 导入文件夹数据到Power Query

    • 打开主工作簿,切换到「数据」选项卡 → 点击「获取数据」→ 「从文件」→ 「从文件夹」
    • 选择存放报表副本的目标文件夹,点击「确定」后,在弹出的预览窗口中选择「转换数据」进入Power Query编辑器
  2. 添加自定义列提取单文件表头

    • 点击「添加列」选项卡 → 「自定义列」,在公式框中输入以下M代码(注意替换Sheet1为报表实际的工作表名称,若所有报表工作表名统一直接使用):
    = let
        Source = Excel.Workbook([Content], null, true),
        TargetSheet = Source{[Item="Sheet1",Kind="Sheet"]}[Data],
        HeaderRow = Table.First(TargetSheet)
      in
        HeaderRow
    
    • 将自定义列重命名为「表头行」
  3. 展开表头为横向列

    • 点击「表头行」列右侧的展开箭头(双箭头图标),选择「展开到新列」,此时每个表头字段会生成独立列,与文件名(「名称」列)处于同一行
  4. 清理数据并加载

    • 删除不需要的系统列(如Content、Item、Kind等),仅保留「名称」(文件名)和展开后的表头列
    • 点击「关闭并上载」,数据将加载到主工作簿中,实现每行对应一个报表、首列是文件名、后续为该报表表头的效果

特殊场景处理

  • 报表工作表名称不统一:修改自定义列的M代码,自动取文件内第一个工作表的表头:
    = let
        Source = Excel.Workbook([Content], null, true),
        FirstSheet = Source{0}[Data],
        HeaderRow = Table.First(FirstSheet)
      in
        HeaderRow
    
  • 表头需固定取第一行:若存在多行表头的情况,将Table.First替换为Table.FirstN(FirstSheet, 1),确保仅提取第一行作为表头

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 13:22:47