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

如何用Power Query动态追加Excel中同结构表生成数据集?

动态合并Excel中所有列名一致的表

完全可以实现,你只需要基于已有的表名称列表,添加加载表并合并的步骤即可,具体操作如下:

步骤1:获取所有表名称(你已完成的部分)

先筛选出当前Excel文件中的所有表,并提取名称列表:

#"Filtered Rows" = Table.SelectRows(Source, each ([Kind] = "Table")),
Name = #"Filtered Rows"[Name]

步骤2:创建自定义函数加载单个表

创建一个函数,传入表名即可加载对应的表数据:

let
    LoadTable = (tableName as text) => 
    let
        Source = Excel.CurrentWorkbook(){[Name=tableName]}[Content]
    in
        Source
in
    LoadTable

步骤3:应用函数并合并所有表

将函数应用到名称列表,生成包含所有表数据的列表,再用Table.Combine合并成一个数据集:

#"Converted to Table" = Table.FromList(Name, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Added Custom" = Table.AddColumn(#"Converted to Table", "Custom", each LoadTable([Column1])),
#"Combined Tables" = Table.Combine(#"Added Custom"[Custom])

完整代码整合

把所有步骤整合到一起的完整M代码如下:

let
    Source = Excel.CurrentWorkbook(),
    #"Filtered Rows" = Table.SelectRows(Source, each ([Kind] = "Table")),
    Name = #"Filtered Rows"[Name],
    // 定义加载表的函数
    LoadTable = (tableName as text) => 
    let
        TableSource = Excel.CurrentWorkbook(){[Name=tableName]}[Content]
    in
        TableSource,
    // 应用函数并合并
    #"Converted to Table" = Table.FromList(Name, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Added Custom" = Table.AddColumn(#"Converted to Table", "TableData", each LoadTable([Column1])),
    #"Combined Tables" = Table.Combine(#"Added Custom"[TableData])
in
    #"Combined Tables"

这个方法会自动识别当前Excel中所有表,不管表名是Table1、Table12这类不规则命名,只要列名一致,就能无缝合并成一个数据集。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 04:14:55