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

Power BI/Power Query:如何用列值作为自定义列名并合并多格式Excel?

Power BI批量处理多年份Excel文件&动态列名自定义列实现

一、批量加载所有年份的Excel文件

  • 点击主页选项卡→获取数据→文件夹,选择存放所有年份Excel文件的文件夹。
  • 在加载的文件夹数据中,添加自定义列,输入公式(适配文件表名规则):
    // 若所有文件表名统一,替换为你的表名
    = Excel.CurrentWorkbook(){[Name="销售数据表"]}[Content]
    // 若表名不统一,取文件内第一个表
    = Table.First(Excel.CurrentWorkbook())[Content]
    
  • 展开自定义列的所有字段,完成批量合并。
  • 添加年份列:从文件名/路径提取年份,比如文件名是「2022销售数据.xlsx」,用公式:
    = Number.From(Text.BeforeDelimiter([Name], "销售"))
    
    调整参数匹配你的文件名规则。

二、按年份生成总计列(结合辅助表)

假设你已生成结构为「年份+文件总计」的辅助表TotalTable,主表也已提取年份列,以下是两种实现方案:

方案1:匹配辅助表生成固定列名的总计列

若只需单列展示对应年份的总计,用合并查询关联:

  • 主表和辅助表都选中年份列,点击主页→合并查询→合并查询作为新列。
  • 选择辅助表,关联方式选「左外部」,展开合并列中的文件总计字段即可。

方案2:提取辅助表值作为动态列名(自定义查询)

若需按年份生成不同列名(如「2022总计」「2023总计」),用以下代码实现:

let
    // 主表前期处理步骤(如批量加载、提取年份)
    Source = 你的主表查询名,
    // 合并主表与辅助表,关联年份列
    MergedTables = Table.NestedJoin(Source, {"年份"}, TotalTable, {"年份"}, "TotalRecord", JoinKind.LeftOuter),
    // 生成包含动态列名的记录
    AddedDynamicColumn = Table.AddColumn(MergedTables, "动态总计", (row) => 
        let
            // 从辅助表记录中提取列名和对应值
            ColumnName = "年份" & Text.From(row[年份]) & "总计",
            TotalValue = row[TotalRecord][文件总计]
        in
            Record.FromList({TotalValue}, {ColumnName})
    ),
    // 展开所有动态生成的列
    ExpandedColumns = Table.ExpandRecordColumn(AddedDynamicColumn, "动态总计", 
        List.Distinct(List.Transform(TotalTable[年份], each "年份" & Text.From(_) & "总计")),
        List.Distinct(List.Transform(TotalTable[年份], each "年份" & Text.From(_) & "总计"))
    )
in
    ExpandedColumns

纠正你的示例代码问题

原代码中each [T1]无法识别变量T1作为列名,正确的动态引用写法需用Record.Field:

let
    // 从辅助表提取目标列名(示例:取Position列的值作为列名)
    T1 = TotalTable{0}[Position],
    // 动态引用列名添加总计列
    AddedTotalColumn = Table.AddColumn(#"Added custom 3", "Total", each Record.Field(_, T1))
in
    AddedTotalColumn

三、按年份拆分数据(可选)

若需将数据按年份拆分为单独表/工作表,点击主页→拆分列→按年份列拆分,选择「拆分为工作表」或「拆分为查询」即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 15:43:12