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
相关产品推荐
相关产品推荐

