BI神器Power Query(21)-- 同一列内多重替换(1)

示例需求:省份清单中“自治区”名称过长,在做报表展示时效果不理想,希望将其替换为简称,例如:内蒙古自治区替换为“内蒙古”。这个直接使用Excel中的替换也可以实现,毕竟只有5个自治区需要替换,接下来看看Power Query中如何实现。

单击选中数据表中任意单元格,例如A6,依次单击【数据】>【自表格/区域】,打开Power Query编辑器。
在这里插入图片描述
依次单击【转换】>【替换值】,在【替换值】对话框中输入【要查找的值】和【替换为】,单击【确定】按钮完成替换。
在这里插入图片描述
使用类似操作依次替换其他几个自治区,PQ M代码如下:

let= Excel.CurrentWorkbook(){[Name="表1"]}[Content],
    更改的类型 = Table.TransformColumnTypes(,{{"省份", type text}}),
    替换的值 = Table.ReplaceValue(更改的类型,"内蒙古自治区","内蒙古",Replacer.ReplaceText,{"省份"}),
    替换的值1 = Table.ReplaceValue(替换的值,"宁夏回族自治区","宁夏",Replacer.ReplaceText,{"省份"}),
    替换的值2 = Table.ReplaceValue(替换的值1,"新疆维吾尔自治区","新疆",Replacer.ReplaceText,{"省份"}),
    替换的值3 = Table.ReplaceValue(替换的值2,"广西壮族自治区","广西",Replacer.ReplaceText,{"省份"}),
    替换的值4 = Table.ReplaceValue(替换的值3,"西藏自治区","西藏",Replacer.ReplaceText,{"省份"})
in
    替换的值4

替换后的结果如下,单击【关闭并上载】按钮将数据加载到工作表中。

在这里插入图片描述
M代码如下:

let= Excel.CurrentWorkbook(){[Name="表1"]}[Content],
    更改的类型 = Table.TransformColumnTypes(,{{"省份", type text}}),
    替换的值 = Table.ReplaceValue(更改的类型,"内蒙古自治区","内蒙古",Replacer.ReplaceText,{"省份"}),
    替换的值1 = Table.ReplaceValue(替换的值,"宁夏回族自治区","宁夏",Replacer.ReplaceText,{"省份"}),
    替换的值2 = Table.ReplaceValue(替换的值1,"新疆维吾尔自治区","新疆",Replacer.ReplaceText,{"省份"}),
    替换的值3 = Table.ReplaceValue(替换的值2,"广西壮族自治区","广西",Replacer.ReplaceText,{"省份"}),
    替换的值4 = Table.ReplaceValue(替换的值3,"西藏自治区","西藏",Replacer.ReplaceText,{"省份"})
in
    替换的值4

这个操作和Excel中直接替换似乎区别也不大,同样也是要操作多次,但是其优势在于,创建PQ清洗步骤是一次性操作,今后数据中的省份都可以直接清洗完成,然而如果想在Excel中实现自动替换,那么将需要借助VBA才能实现。

Power Query也由其他的简洁实现方式,再接下来几篇博文中进行讲解。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页