1个常见的中英文判断问题,写出5个方法,练好9个实用函数 | PQ实战
前些天,一位朋友问到在Power Query里怎么判断纯英文/中文的问题,如下面表里的产品,要么是全部中文,要么是全部英文的内容:
如果是在Excel里,这个问题也很简单,直接用LEN函数读取字符串的长度——字符个数,并和用LENB函数读取的字节数比较,如果一致,说明是英文内容,因为英文字母和标点符号的长度和字节数都是1,而每个中文字符的长度是1,但字节数是2:
那么在Power Query里,这个问题怎么解决呢?其实方法非常多,以下列举5种,供大家参考,同时可以以这个例子,把涉及的9个函数都练一遍。
- 1 -
TextToBinary法
这个方法的原理跟前面在Excel中使用的方法一致,即通过判断字符数和字节数是否一致而得到结论。
但是,因为在PQ里虽然有读取字符数的函数(Text.Length),但没有直接计算字符串字符数的函数,所以,我们需要先对具体内容转换为二进制数据(Text.ToBinary),然后再读取二进制数据的长度(Binary.Length)即为字节数:
- 2 -
ListContains法
这个方法即从每项内容中读取第1个字符(Text.Start),然后判断这个字符是否为英文字母(包含在英文字母列表中:List.Contains)——这种方法非常简单,但是显然也限制比较大,比如应确保第1个字符要么是英文,要么是中文,而不能出现其他标点符号等内容:
- 3 -
ListContainsAny法
这个方法是将待判断的文本拆分为列表(Text.ToList),然后判断这个列表里是否存在任何英文字母(List.ContainsAny)。
这里List.ContainsAny函数有个小技巧,可以引入第3个参数 Comparer.OrdinalIgnoreCase忽略大小写,所以第2个参数只要用{“A”..”Z”}大写字母列表即可。
- 4 -
TextRemove法
这个方法的原理很简单,就是把内容中的英文字母给删掉(Text.Remove),然后看跟原来的内容是否一致,如果不一致,说明其中包含英文字母。
-5 -
TextSelect法
这个方法是从内容中选择出英文字母(Text.Select),如果结果不为空("”),则说明存在英文字母。
以上就是关于这个中英文判断问题的5种简单方法。其实,对于大多数的问题来说,都可能存在多个解决方法,比如我以前写过的《惊呆必藏!1个实际工作问题,15种解法,练好22个函数!》。关键在于——
熟练掌握这些基础的功能与函数,理清问题解决的思路!
相关文章
- SecureCRT的使用方法和技巧(详细使用教程)[通俗易懂]
- android vlc 字幕乱码,VLC播放器中文字幕乱码问题解决方法[通俗易懂]
- task scheduler服务启动后停止.解决方法_windows创建定时任务
- win10 oracle11g安装报错问题集合 附解决方法
- Android开发中遇到的问题(四)——Android中WARNING: Application does not specify an API level requirement!的解决方法详解手机开发
- AJAX跨域问题解决方法(3)——被调用方解决跨域详解编程语言
- Linux下卸载python的正确方法(linux卸载python)
- Oracle 发现无效月份:问题及解决方法(oracle无效的月份)
- 解决Oracle存储过程乱码问题的方法(oracle存储过程乱码)
- 解决oracle监听启动问题的方法(oracle无法启动监听)
- 解决MySQL查询无返回数据问题的方法(mysql查询没有数据)
- 深入浅出:Oracle分库技术实践(oracle分库方法)
- 高效同步:Linux下时间同步的必要与方法(linux系统的时间同步)
- Oracle ODM 关闭解决重大问题的正确方法(oracle 关闭odm)
- 现象解决Redis雪崩问题的几种方法(怎么处理redis的雪崩)
- 解决方法汇总如何解决MySQL不允许他人连接问题(mysql不允许别人连接)
- Mysql连接问题,解决方法不容错过(mysql不然我连接)
- MySQL默认密码不显示问题解决方法(mysql不显示默认密码)
- 排列Oracle 中使用升序排列的方法(oracle中 升序)
- Redis队列清空任务的简易方法(redis队列清空)
- 解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
- mysqlreport显示Com_中change_db占用比例高的问题的解决方法
- Asp.net中的GridView导出遇到的两个问题和解决方法
- win2003中的w3wp.exe进程大量占用cpu资源的各种问题解决方法
- MySQL中使用casewhen语句实现多条件查询的方法
- PHPsubstr截取字符串出现乱码问题解决方法[utf8与gb2312]
- 在vim中添加perl注释时无法对齐问题的解决方法
- php中使用addslashes函数报错问题的解决方法
- Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
- 使用HMAC-SHA1签名方法详解
- js中方法重载如何实现?以及函数的参数问题
- MYSQL的binary解决mysql数据大小写敏感问题的方法
- asp.net导出excel的简单方法实例