前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >快速提取首个任意汉字前数字,2个方法,其实都很简单! | PBI实战技能

快速提取首个任意汉字前数字,2个方法,其实都很简单! | PBI实战技能

作者头像
大海Power
发布2021-08-31 16:09:45
发布2021-08-31 16:09:45
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

- 1 -

这是微信里一位朋友提的问题:将“亿”、“万”等不同单位(汉字)前的数字给提取出来:

初一想,我们当然可以用Text.SplitAny函数来实现,添加自定义列并写公式如下:

这个公式很简单,即对内容用所有汉字(Text.Combine)进行拆分(Text.SplitAny),这时得到一个拆分结果列表,再取其中在第一项{0}即可。

代码语言:javascript
代码运行次数:0
复制
= Text.SplitAny(
    [内容],
    Text.Combine({"一".."龟"})
){0}

- 2 -

上面的方法直接使用函数来实现,对于熟悉PQ基础函数的朋友来说应该都不难,但回头一想,现在PQ里不是支持“从数字到非数字”的分列吗?那是否能直接通过操作来实现呢?

选定要拆分的内容,点选【拆分列/按照从数字到非数字的转换】:

此时,我们发现,内容被拆分成了“内容.1”、“内容.2”、“内容.3”三列(如果有更多内容的话,可能还会有更多的列),同时,在生成的步骤公式里,对应了一个“输出”参数——{“内容.1”,“内容.2”,“内容.3”}:

显然,我们只需要"内容.1",那我们是不是要删掉内容2和内容3两列呢?而且,问题是,如果因为数据不同还有更多的列,那怎么能确保所有都删掉?

其实,这里很简单,我们将上面的输出参数直接保留“内容.1”(删掉内容2和3)即可:

同时,我们还可以直接把输出的列名改掉,这样,就会直接按照我们需要的列名进行输出:

是不是非常完美?

但是,我要告诉你,这个方法虽然可以用,但其实还是有点儿条件的,在什么情况下不能用?下载源文件看看就知道了:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel到PowerBI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档