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

Power Query自定义列提取文件指定单元格值以分组合并文件求助

解决Power Query按特定单元格值拆分合并文件的问题

针对Excel文件的正确自定义列公式

你之前用Excel.CurrentWorkbook()是错误的,这个函数读取的是当前操作的工作簿,而非每个导入的原始文件。要读取每个Excel文件的指定单元格,用下面的公式:

  • 取B2单元格(第2行第2列):
    = Excel.Workbook(File.Contents([Folder Path]&[Name])){0}[Data]{1}[Column2]
    
  • 取B3单元格(第3行第2列):
    = Excel.Workbook(File.Contents([Folder Path]&[Name])){0}[Data]{2}[Column2]
    

公式说明:

  • {0}:代表文件中的第一个工作表(如果数据在其他工作表,改成对应索引,比如第二个工作表用{1})
  • [Data]:提取工作表的内容数据
  • {1}:代表第2行(Power Query索引从0开始,第1行是{0})
  • [Column2]:代表第2列(对应Excel中的B列,A列是[Column1])

针对CSV文件的正确自定义列公式

你之前的公式错误在于列索引,B列对应[Column2]而非[Column1],正确公式:

  • 取B2单元格(第2行第2列):
    = Csv.Document(File.Contents([Folder Path]&[Name])){1}[Column2]
    
  • 如果CSV文件有表头行,需要先指定表头参数,再取对应行:
    = Table.FromRecords(Csv.Document(File.Contents([Folder Path]&[Name]), [Headers=true])){0}[Column2]
    

(这里{0}代表表头后的第一行,也就是Excel里的B2)

公式失效的排查要点

  • 检查文件路径:确保[Folder Path]&[Name]拼接的路径正确,没有空格、特殊字符,且文件未被其他程序(比如Excel)占用
  • 核对索引:Power Query的行、列、工作表索引都是从0开始,别和Excel的1开始规则搞混
  • 确认文件格式:如果是混合格式文件,要区分Excel(.xlsx/.xls)和CSV(.csv)分别处理

替代筛选方法

如果自定义列操作麻烦,可根据文件特征直接筛选:

  • 按文件名筛选:如果两组文件命名有规律(比如一组前缀是"Group1_",另一组是"Group2_"),直接在Name列用文本筛选器匹配前缀
  • 按文件属性筛选:如果两组文件的创建日期、修改日期或文件大小有明显区分,用Folder.Files加载的属性列(比如Date created)筛选

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 16:03:22