如何识别Power Query中显示为空格的未知字符并替换?
解决Power Query合并匹配失败与未知字符处理方案
一、先揪出未知字符的编码
- 在Excel里选中那个菱形问号的字符,输入公式
=CODE(选中单元格),就能拿到它的编码。比如全角空格是12288,不间断空格是160,这些都是Clean、Trim搞不定的。 - 如果是特殊Unicode字符,换用
=UNICODE(选中单元格)查更准确的编码。
二、Excel里批量替换掉这个破字符
- 快捷键
Ctrl+H开替换窗口,要么直接粘贴那个菱形问号到“查找内容”,要么用=CHAR(编码值)生成字符后复制进去,“替换为”填正常空格或者直接留空(想删掉的话),点“全部替换”就行。 - 批量处理的话,插个新列,输入
=SUBSTITUTE(原单元格, CHAR(编码值), " "),把编码换成你查到的数字,下拉填充后复制成值覆盖原列。
三、Power Query里直接处理(一步到位)
- 加载数据后选中Contract列,加个自定义列,用这段M代码替换:
把编码换成你查到的数,比如不间断空格就写= Text.Replace([Contract], Character.FromNumber(编码值), " ")Character.FromNumber(160)。 - 也可以结合
Text.Clean一起用,因为它只能清部分不可见字符,非标准空格得额外替换:= Text.Replace(Text.Clean([Contract]), Character.FromNumber(12288), " ")
四、验证效果
处理完回到Power Query重新合并查询,看看匹配率上去没;或者在Excel里用VLOOKUP/XLOOKUP测下两列能不能对上,确认字符统一了就行。
内容的提问来源于stack exchange,提问作者leolapa
相关产品推荐
相关产品推荐

