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

Power BI中指定列强制设置UTF8编码报错问题咨询

报错根因

Table.SelectRows是Power Query中用于筛选行的函数,其第二个入参要求每行的计算结果必须为逻辑值(True/False),用于判断当前行是否需要保留。你当前的代码中if分支返回的是null或转码后的文本值,Power Query尝试将文本强制转换为逻辑值时触发了类型不匹配报错。

解决方案

如果你的需求是对[number]列的内容进行编码转换,应该使用专门用于列内容修改的Table.TransformColumns函数,正确代码如下:

= Table.TransformColumns(
    #"Changed Type",
    {
        "number",
        each if _ is null or _ = "" then null else Text.FromBinary(Text.ToBinary(_, 1251), TextEncoding.Utf8),
        type text
    }
)

补充说明

如果你同时需要筛选掉[number]列为空或null的行,可以在转码完成后再加一步筛选操作:

// 第一步:完成number列编码转换
#"Encode Number Column" = Table.TransformColumns(
    #"Changed Type",
    {
        "number",
        each if _ is null or _ = "" then null else Text.FromBinary(Text.ToBinary(_, 1251), TextEncoding.Utf8),
        type text
    }
),
// 第二步:筛选掉空值行
#"Filter Non-empty Rows" = Table.SelectRows(#"Encode Number Column", each [number] <> null and [number] <> "")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:45:05