Menu Close

EXCEL提取同一单元格内无规律分布的汉字、数字、字母,有哪些方法?

关于无规律的汉字、数字、字母提取问题,在Excel2016中用Ctrl+E或智能填充在很多情况下其实并不能很好地解决,最好的方法还是建议用Power Query,其中有函数Text.Remove(预计这个月底可能会加入Text.Select新函数,到时会更简单),比如要提取数字,即把汉字和字母删掉,请参考下面的操作方法:

Excel字符串中提取数字,不需要大神级公式 大海 Excel到PowerBI 小勤:大海,救命!有个二货给的表里面有一列中英文、数字、标点符号全混在一起的,我要把数字提出来!

大海:呵呵。网上不是有很多大神写过很牛B的公式吗?

小勤:我找过了,找到一个,完全看不懂!而且试了一下,结果还不是全对的!你看:

大海:这个公式我也写不粗来!

小勤:那怎么办?难道非得用VBA吗?

大海:如果是以前,我会用VBA,现在,我用Power Query,而且很简单,大家都能学会的。

小勤:真的?太好了,赶紧告诉我。

大海:看着啊。只需要Text.Remove一个函数就行了。

小勤:!!!!!!太简单了!而且我还能看出来是什么意思。大括号里的就是要删除的内容,包括空格、-、从字母A到龥字,对吧?

大海:对的,就是这个意思。要删啥就扔啥在大括号里,其中A到龥包含了所有大小写字母和中文汉字。

小勤:那如果只删汉字呢?

大海:那就是“一”..“龥”。

小勤:知道了。我想我应该还知道怎么只删英文字母或数字了。

删除所有常用汉字,只要一只大乌龟 原创 大海 Excel到PowerBI 小勤:近来开始跟着您的文章逐步学Power Query的M语言及函数问题字符转汉字,想起以前那个文章--《PQ-综合实战:Excel字符串中提取数字,不需要大神级公式》,里面提到去除汉字,用【Text.Remove('一'..'龥”) 】,后面那个是什么鬼字啊?记得也打不出来啊。

大海:这个字的确很难打,我也打不出来,所以建议你可以用个记事本或OneNote笔记本记住,以后复制粘贴进去就行了。

小勤:这样还是很麻烦啊。

大海:我也觉得,那再跟你说个简单的,首先,“一”字开始很容易记吧?结尾用“龟”字,即Text.Remove('一'..'龟')。

小勤:啊。这两个字就真好记,一只龟,一只大乌龟……哈哈!不过这有点儿太随意了吧?用”一”..“龟”能全部去掉所有汉字吗?

大海:我们拿个例子试试看呗:

Step-1:获取数据

Step-2:添加自定义列“门牌号”--输入新列名及公式【Text.Remove([地址],{“一”..”龟”})】

Step-3:数据上载

小勤:咦,真的可以嘢,为什么呢?

大海:怎么说呢?用'龥”字是相对严谨的用法,但用“龟”字一般来说都没有问题了。因为在“龟”字以后的字我还没有在什么现代文明社会里见到过。

小勤:“龟”以后的汉字?

大海:嗯。你知道为什么'一'..'龥”包含了所有汉字吗?

小勤:不知道呢,也就是你上次的文章里说到过字符转汉字,所以现在其实就是死记硬背。

大海:其实是这样的,在PowerQuery里对字符的使用遵循Unicode国际编码规则--你理解为一个世界通用的对各个国家的文字按一定的顺序进行统一编码的标准就行了。在这个Unicode国际编码规则里,汉字被编在一个连续区域,从“一”开始,到“龥“,编号分别为19968和40869。

小勤:晕菜,数字更记不住。

大海:嗯。我也记不住。

小勤:那你怎么知道的?

大海:Excel告诉我的啊。

小勤:Excel?

大海:嗯。你在Excel里用UNICODE函数就能得到一个字符的编码。比如UNICODE(“一”),就等于19968。同时,反过来,用UNICHAR函数能知道一个编码对应的是什么字,如UNICHAR(19968)就是“一”。

小勤:啊。原来这样,那我知道了,我们用UNICHAR 岂不是可以得到所有的Unicode字符了?

大海:对的,我就是这样知道“龟”字的。

“龟”及其后面的字是这样的:

小勤:啊。原来这样,“龟”字后面那几个字真的是很少见啊。那以后我删汉字就用“一只大乌龟”了。呵呵。

更多精彩内容,请关注【Excel到PowerBI】

相关文章:

发表回复