如何在Excel Power Query中批量替换列内所有指定文本?
解决Power Query中逗号分隔文本的全局替换问题
你遇到的问题是因为默认的Replacer.ReplaceText在部分场景下(比如单元格包含多值分隔内容)的匹配逻辑没覆盖到所有情况,改用Text.Replace函数可以实现单元格内所有目标文本的替换,不管它是单独出现还是在逗号分隔的内容里。
给你两种可行的方案:
方案一:直接修改Table.ReplaceValue的替换逻辑
把原公式里的Replacer.ReplaceText换成自定义的替换函数,用Text.Replace来做全局替换:
Table.ReplaceValue( #"Step1", "South Korea", "Korea", (oldValue, findValue, replaceValue) => Text.Replace(oldValue, findValue, replaceValue), {"Other Locations"} )
这个写法会遍历Other Locations列的每个单元格,对单元格内的所有文本进行全局替换,不管目标文本是单独存在还是和其他内容用逗号分隔。
方案二:通过自定义列实现替换
如果觉得上面的写法复杂,也可以分步操作:
- 添加自定义列,输入公式:
Text.Replace([Other Locations], "South Korea", "Korea") - 删除原来的
Other Locations列,把新添加的自定义列重命名为Other Locations
两种方法都能实现你要的全局替换效果,选你觉得顺手的就行。
内容的提问来源于stack exchange,提问作者yosif
相关产品推荐
相关产品推荐

