Power BI SharePoint Folder连接器导入新增CSV文件时缺失列求助
问题根源
你的代码中,扩展列步骤依赖固定样本文件的列名集合:
#"Expanded Table Column1" = Table.ExpandTableColumn(#"Removed Other Columns1", "Transform File", Table.ColumnNames(#"Transform File"(#"Sample File"))),
这里的#"Sample File"是Power BI初始导入时自动选取的旧文件,不包含新增列,因此扩展操作只会加载样本中存在的列,新文件的额外列被直接忽略。
解决方案
方案1:动态获取所有文件的列名集合(推荐,持久化解决)
替换原有的Expanded Table Column1步骤,改为先收集所有已转换文件的列名,合并去重后再扩展列:
// 替换原Expanded Table Column1步骤 #"Get All Column Names" = List.Distinct(List.Combine(List.Transform(#"Removed Other Columns1"[Transform File], Table.ColumnNames))), #"Expanded Table Column1" = Table.ExpandTableColumn(#"Removed Other Columns1", "Transform File", #"Get All Column Names")
List.Transform(..., Table.ColumnNames):遍历所有已转换的文件表,提取每个表的列名List.Combine:将所有列名合并为一个列表List.Distinct:去重得到所有文件的唯一列名集合- 用该集合扩展列后,新文件的额外列会被自动包含,无对应数据的列将显示
null
方案2:手动更新样本文件(临时方案)
若不想修改代码,可临时更新Power BI的样本文件:
- 进入
Transform File自定义函数的编辑界面 - 点击【高级编辑器】旁的【从样本】,选择包含新增列的CSV文件作为新样本
- 保存函数后返回主查询,刷新数据即可显示新增列
注意:该方案仅临时生效,后续新增列需重复操作
额外注意事项
- 确保
Transform File函数中没有硬编码列名(如Table.SelectColumns固定保留列),否则新列会被过滤 - 类型转换步骤需适配动态列:原代码中
Changed Specific Types仅处理固定列,新列默认保持文本类型,可按需添加动态类型判断或统一先转文本再处理
内容的提问来源于stack exchange,提问作者Erwin Schleier
相关产品推荐
相关产品推荐

