动态数组行业案例:使用TEXTJOIN函数 × 动态数组将字符串中的数字和汉字分开
创作者俱乐部成员
今天我们继续来聊动态数组,其实数组公式听起来很复杂,其实在日常工作中的应用还是蛮大的。比如用一个字符串来说,里面混有汉字、数字、字母和特殊符号,怎样能够快速提取出汉字和数字呢?
动态数组将帮你来解决!
例如,B2单元格的字符串“金山办公清华学弟WPSwps 012345!@#$%^&*(),./”中 ,就……十分没有规律,在这种情况下,我们首先使用MID()+SEQUENCE()函数组合,生成动态数组,打碎字符串,制作字符切片:
=MID(B2,SEQUENCE(LEN(B2)),1)
都是之前教程有讲过,这里就不再赘述啦。
本节课的重点是,怎样区分汉字和数字?
这里面涉及到了汉字和数字的特性……在我刚开始接触的时候,我也不知道具体有啥区别,于是就头脑风暴式乱试一通……最后把有显著区别的,汇总在一起:
从表格中我们可以看出——
数字的特点:
①CODE值很小,在48-57之间
②LENB值为1
③支持3种转数值的计算
④可以通过改格式来提取
汉字的特点:
①CODE值很大,在五位数以上
②LENB值为2
③不支持3种转数值的计算,会报错
④可以通过改格式来提取
其中,CODE函数计算的是单个字符的国际标准ASCII码,每个字符有且只有一个ASCII码相对应:
而且,LENB值为“字节数”(与LEN值“字符数”作为区分)。汉字占用两个字节(全角),数字、字母和特殊符号占用一个字节(半角)(但“字符数”均为1)。因此,可以通过LENB“字节数”将二者区分开。
TEXT函数可以为每个字符更改格式。";;;"的格式写法与【设置单元格格式】中的“自定义格式”模式相同,分别是“正数;负数;零;文本”的格式。因此“0;;0;”意为:保留正数和零,负数和文本被屏蔽成""(空值),由于单个字符切片不涉及负数,因而“0;;0;”可以把文本屏蔽掉,只保留数字;";;;@"意为:正数、负数、零都被屏蔽成""(空值),文本正常保留,可以用来屏蔽数字。
💡 | 注意: ①TEXT函数在书写的过程中,格式代码要用英文双引号""括起来。 ②格式代码中的的"0"代表了保留0位小数的数值格式,和正数、负数、零和文本中的“零”意义不同,后者是本意“零”(Zero)。因此,本段在写作过程中,我将"0"和“零”作为区分。(——作者注) |
基于以上数字和汉字的特点区别,我们借助动态数组的优势,进行分条件提取,最后使用TEXTJOIN()函数进行拼合:
从而实现快速提取数字和汉字,动态数组再次取得了胜利!
大家学会了吗?
下面是今天练习文档的链接:
【金山文档】 动态数组行业案例:使用TEXTJOIN函数将字符串中的数字与汉字分开
https://kdocs.cn/l/cmeTCfY8ti7l
为不影响社区其他用户查看初始文件,我关闭了在线协作的功能。大家可以将文档下载到本地,自由操作练习哦!
如果你觉得今天的教程对你有帮助,欢迎在下方为我点一颗小红心💖💖💖哦!
同时,你也可以将感悟或者收获在下方留言,或者在评论区留下你的困惑,我会挑选有代表性的问题,推出更多的教程跟大家分享哦!
祝大家国庆节快乐!
欢迎大家阅读我的其他文章:
✅【函数攻略】系列
✅【动态数组灰度测试】系列
动态数组行业案例:使用SEQUENCE/FILTER函数 × 动态数组 搞定三大高频场景
动态数组行业案例:使用SORTBY函数 × 动态数组 制作多功能成绩单
动态数组行业案例:使用UNIQUE函数 × 动态数组 多场景全能应用
动态数组行业案例:使用SEQUENCE函数 × 动态数组 生成动态序号
动态数组行业案例:使用XLOOKUP函数 × 动态数组 实现金牌查找(上)
动态数组行业案例:使用XLOOKUP函数 × 动态数组 实现金牌查找(下)
动态数组行业案例:使用RANDARRAY函数 × 动态数组 解决授课案例问题
动态数组行业案例:使用INDIRECT函数 × 动态数组制作二级下拉菜单
✅【WPS AI办公】系列
✅【菁培班-函高一期PK赛】系列
✅【学习感悟】系列
WPS函数专家
创作者俱乐部成员