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

PowerQuery加载多独立CSV后按分号拆分列失败求助

解决PowerQuery加载多CSV文件列拆分失败的问题

问题根源

你的文件用分号分隔,但Csv.Document默认用逗号作为分隔符,参数没配置对才会把所有数据挤在一列;拆分失败或报错,大概率是参数类型错误、编码不匹配,或者源文件存在格式异常。

分步解决

1. 修正Csv.Document核心参数

直接打开PowerQuery的高级编辑器,找到调用Csv.Document的代码行,改成以下格式,明确指定分号为分隔符,同时匹配文件编码(UTF-8用65001,西欧地区文件常用1252):

Csv.Document([Content], [Delimiter=";", Encoding=65001, QuoteStyle=QuoteStyle.Csv])
  • 若你的文件没有带引号的字段,可将QuoteStyle.Csv改为QuoteStyle.None,避免不必要的解析错误。

2. 确保每个文件单独加载不合并

不要使用系统自带的「合并文件」功能,按以下流程操作:

  • 连接到目标文件夹后,筛选出需要的4个文件
  • 对每个文件,点击右侧加载箭头,选择「仅创建连接」
  • 打开对应文件的查询,修改完Csv.Document参数后,将查询加载到PowerBI模型——这样每个文件会成为独立的数据表

3. 拆分失败的额外排查点

  • 如果源文件存在字段内带分号但未加引号的情况,不要用自动拆分,改用自定义文本拆分逻辑:
    Table.FromList(Text.Split([Content], "#(cr)#(lf)"), Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), null, null, ExtraValues.Error)
    
  • 检查文件是否有空行、表头乱码,可添加Table.RemoveRowsWithErrors或Table.Skip(Table, 1)(若表头格式异常)步骤清理数据。

4. 解决参数调整后的报错

报错基本是参数格式不匹配导致:

  • Delimiter必须是带引号的文本,不能直接写;或省略引号
  • Encoding是数字编码值,比如65001,不是字符串"UTF-8"
  • 不要随意添加多余参数,比如不需要指定列名就别写ColumnNames,避免参数冲突

验证步骤

修改单个文件的查询后先预览,确认列已正确拆分;再依次处理剩余3个文件,最后到PowerBI模型视图检查4个独立表是否存在且数据正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 00:03:18