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

PowerQuery中如何创建带条件的Table.TransformColumnType列类型转换逻辑

你原有代码的问题在于try和otherwise分支执行的是完全相同的逻辑,等于没有做错误处理;且批量调用Table.TransformColumnTypes处理多列时,只要任意一列转换抛出错误,整段操作都会直接失败,无法单独保留转换失败列的原始文本类型。

你可以通过List.Accumulate逐列处理转换逻辑,每一列单独做错误捕获,转换成功就更新为数值类型,失败就保留该列的原始类型:

#"Changed Type" = List.Accumulate(
    sTranCol,
    CombineTables,
    (state as table, colName as text) as table =>
        let
            tryConvert = try Table.TransformColumnTypes(state, {{colName, type number}})
        in
            if tryConvert[HasError] then state else tryConvert[Value]
)

上述逻辑会保留单元格层面的转换错误值,符合你不介意单元格返回错误的需求。如果后续转置操作会因为单元格错误中止,可以在转换完成后新增一步统一将错误值替换为null:

#"Replace Errors" = Table.ReplaceErrorValues(#"Changed Type", List.Transform(sTranCol, each {_, null}))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 17:57:02