前面已经说了提取数字、大小写字母的通用公式,这些通用公式能够非常快速的提取单元格内任意位置的数字、字母;今天分享的是如何快速提取汉字。在分享之前,大家可以先复习一下数字和字母的通用公式:
提取数字:
=CONCAT(IFERROR(--MID(B2,SEQUENCE(LEN(B2)),1),""))
提取字母:
=CONCAT(CHAR(LET(A,CODE(MID(B2,SEQUENCE(LEN(B2)),1)),FILTER(A,(A>64)*(A<91) (A>96)*(A<123)))))
判断长度并分拆步骤1:录入函数取字=LEN(B2),
判断出单元格中的字符长度为11,
步骤2:录入函数:=SEQUENCE(LEN(B2))
生成一个11个连续数字的数组{1;2;3;4;5;6;7;8;9;10;11};
步骤3:录入函数:=MID(B2,SEQUENCE(LEN(B2)),1)
配合MID函数,分别提取单元格内的第1个字符、第2个字符一直到第11个字符。效果如下图所示:
判断汉字分开后,需要引入判断汉字的条件。经过比较测试发现,汉字的大小比较在Excel中是和拼音有关的:
“咗”是汉字中最大的,“吖”是汉字中最小的。
知道了最大的汉字和最小的汉字,判断汉字的方法就比较简单了,就是:只要是大于“吖”的就是汉字,因为“吖”是汉字中最小的,大于它肯定是汉字了。
录入函数:=MID(B2,SEQUENCE(LEN(B2)),1)>"吖",可以发出汉字返回结果都是TRUE,已经判断出来了;
合并结果只要结果中出现“TRUE”、“FALSE”这样的逻辑结果,首先想到的就是IF函数,如果真返回什么,假返回什么。在套用IF函数前,先用LET函数定义一下步骤一的结果,再配合IF函数录入,函数就会变得相对简洁;录入函数:
=LET(X,MID(B2,SEQUENCE(LEN(B2)),1),IF(X>"吖",X,""))
函数释义:
X= MID(B2,SEQUENCE(LEN(B2)),1),也就是分拆结果
如果分拆后的结果大于吖,就返回分拆结果,否则返回空,相当于TRUE返回汉字,FALSE返回空值
到了这一步,就只需要用合并函数了CONCAT了
录入函数:
=CONCAT(LET(X,MID(B2,SEQUENCE(LEN(B2)),1),IF(X>"吖",X,"")))
最后总结:Excel2021或365版本通用公式:
=CONCAT(LET(X,MID(B2,SEQUENCE(LEN(B2)),1),IF(X>"吖",X,"")))
WPS版本通用公式:
由于WPS不支持LET函数,所以公式会长一点:
=CONCAT(IF(MID(B2,SEQUENCE(LEN(B2)),1)>"吖",MID(B2,SEQUENCE(LEN(B2)),1),""))
我是古哥:
从事制造行业18年,在企业运营、供应链管理、智能制造系统等方面具有丰富的实战经验。企业智能化,柔性化计划运营管理专家,擅长通过企业流程优化规范,企业管理、导入计划运营提升企业效率;对提高企业准时交货率,降低企业库存,输出智能制造人才有丰富的经验。学习PMC生产计划,关注古哥计划!
欢迎私信投稿生产计划的相关问题,古老师将会把解决方案更新到公众号文章上面。