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

Power BI加载含缺失列的多JSON文件报错问题咨询

解决Power BI合并缺失列的JSON文件报错问题

错误原因

当前代码依赖样本文件的列名来展开所有文件的表,但部分文件缺少样本文件中的列(比如col3),导致展开时触发「列未找到」的错误。

修复方案

有两种简单的解决方式,任选其一即可:


方式1:修改自定义函数补全缺失列

编辑「Transform File (4)」这个自定义函数,确保每个JSON文件加载后自动补全所有必要列(缺失列填充null):

let
    Source = Json.Document(FileContents),
    #"Converted to Table" = Table.FromRecords(Source),
    // 替换成你需要的所有列名(比如你提到的20列)
    AllRequiredColumns = {"id", "ref", "col3", "col4", ...},
    // 自动添加缺失的列
    #"Added Missing Columns" = List.Accumulate(AllRequiredColumns, #"Converted to Table", (table, col) =>
        if Table.HasColumns(table, col) then table
        else Table.AddColumn(table, col, each null)
    )
in
    #"Added Missing Columns"

修改后回到主查询,原有的展开步骤即可正常运行,因为每个文件的表都包含了所有列。


方式2:用Table.Combine替代手动展开

直接修改主查询中的展开步骤,用Table.Combine自动合并所有表,Power BI会自动处理缺失列(补null):

// 替换原有的Expanded Table Column1步骤
#"Combined Tables" = Table.Combine(#"Removed Other Columns1"[Transform File (4)]),
#"Changed Type" = Table.TransformColumnTypes(#"Combined Tables",{{"Source.Name", type text}, {"id", type any}, {"ref", type any}, {"col3", type any}, ...})
in
    #"Changed Type"

注意:Changed Type步骤里要包含所有20列的类型定义,或者后续用自动检测类型简化操作。

验证效果

修改后刷新查询,所有JSON文件会被正常合并,缺失列的位置会填充null,不再触发报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 05:27:18