先看视频,再看文章



小勤:大海,救命!有个二货给的表里面有一列中英文、数字、标点符号全混在一起的,我要把数字提出来!

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

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

视频讲解 | 揭示本质,删除汉字为什么只要记住“一只大乌龟”?_大括号


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

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

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

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

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


视频讲解 | 揭示本质,删除汉字为什么只要记住“一只大乌龟”?_ico_02


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

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

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

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

小勤:知道了。我想我应该还知道怎么只删英文字母或数字了。对了,最后面那个汉字是什么鬼啊?记得也打不出来啊。


视频讲解 | 揭示本质,删除汉字为什么只要记住“一只大乌龟”?_自定义_03


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

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

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

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

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


Step-1:获取数据


视频讲解 | 揭示本质,删除汉字为什么只要记住“一只大乌龟”?_大括号_04


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


视频讲解 | 揭示本质,删除汉字为什么只要记住“一只大乌龟”?_大括号_05

视频讲解 | 揭示本质,删除汉字为什么只要记住“一只大乌龟”?_ico_06


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

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

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

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

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

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

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

大海:嗯。我也记不住。

小勤:那你怎么知道的?

大海:Excel告诉我的啊。

小勤:Excel?

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

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

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


视频讲解 | 揭示本质,删除汉字为什么只要记住“一只大乌龟”?_自定义_07

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


视频讲解 | 揭示本质,删除汉字为什么只要记住“一只大乌龟”?_自定义_08

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