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

57 篇文章 2 订阅
29 篇文章 6 订阅

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

单击选中数据表中任意单元格,例如A6,依次单击【数据】>【自表格/区域】,打开Power Query编辑器。
在这里插入图片描述
依次单击【转换】>【替换值】,在【替换值】对话框中输入【要查找的值】和【替换为】,单击【确定】按钮完成替换。

在这里插入图片描述
恐怕我是用的“假PQ”,自治区被替换为公式了,看编辑栏中是被引号包围,那么必定结果中是字符了,就像孙悟空戴上紧箍咒,不可能有什么神威了。
在这里插入图片描述
略加修改去掉引号,就可以实现正常替换了,将自治区替换为简称。在这里插入图片描述
创建这样的新列正宗操作应该是使用【自定义列】功能,但是使用需要输入自定义公式(M代码),并确保没有语法错误。而使用条件列,只需要输入几个参数将可以实现,但是只能实现字符替换,在编辑栏中稍加修改将可以实现相同的效果,对于PQ新手来说,不失为一个偷懒的方法。这二者的区别有点儿类似于命令行与图形操作界面的区别。
在这里插入图片描述
新建列中内蒙古自治区被简化为“内蒙”,这个需要单独处理。在增加条件列对话框中,增加一个条件处理“内蒙古”。
在这里插入图片描述
修改PQ公式,就可以得到正确的省份名称了。

在这里插入图片描述
删除第一列,并修改列名为“省份”,完成全部替换。
在这里插入图片描述
单击【关闭并上载】按钮可以将数据加载到工作表中。

M代码如下:

let= Excel.CurrentWorkbook(){[Name="表1"]}[Content],
    更改的类型 = Table.TransformColumnTypes(,{{"省份", type text}}),
    已添加条件列 = Table.AddColumn(更改的类型, "省份(简)", each if Text.StartsWith([省份], "内蒙") then "内蒙古" else if Text.EndsWith([省份], "自治区") then Text.Middle([省份],0,2) else [省份]),
    删除的列 = Table.RemoveColumns(已添加条件列,{"省份"}),
    重命名的列 = Table.RenameColumns(删除的列,{{"省份(简)", "省份"}})
in
    重命名的列
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值