分享

EXCEL版独孤九剑,专治各种文本,看过的都成了高手(三)

 EXCEL应用之家 2023-12-06 发布于上海


送人玫瑰,手有余香,请将文章分享给更多朋友

动手操作是熟练掌握EXCEL的最快捷途径!

【置顶公众号】或者【设为星标】及时接收更新不迷路



小伙伴们好,上期介绍了如何确定某字符在字符串中的位置的相关技巧。今天这一篇,我们将着重介绍字符类型的数量与统计。

工欲善其事必先利其器,在提取字符的问题中,我们有时需要先知道字符串的各类型字符总数以及该类型字符最早/最晚出现的位置。除了前面两期介绍的LEN函数和LENB函数等判断字符串的字符/字节数外,有时候也需要确定字符串内数字/英文/汉字等的总数量来进行进一步提取(特别是数字数量)。下面介绍的就是经过无数前辈们总结而得的统计思路。


01

统计字符串中的数字个数

使用“=COUNT(-MID(单元格,ROW(1:50),1))”这个套路就可以了。本篇内后面出现的ROW(1:50)均表示50只是一个足够大的数,不小于源字符串长度即可。



一句话解释:MID函数依次从第一位到最后一位提取长度为1 的字符,减法运算后将文本字符转变为错误值。COUNT函数可以忽略错误值统计数字个数。


02

统计字符串中英文字母个数

和上例一样,也是需要用到COUNT函数。



几句话解释:MID函数依次提取出字符后和“1”合并,结果为单元格地址和数值组成的内存数组。通过INDIRECT函数返回单元格地址内容(英文字母所对应的部分),非单元格地址的则返回错误值。再用N函数降维,最后用COUNT函数统计出字母个数。


03

统计字符串中汉字的数量

这个有两种常用套路。

第一种是前面两期介绍过的LEN()-LENB()的方法,这里不再详细介绍了。

第二种方法如下。



一句话解释:我们都知道,“做”、“座”等汉字是比较大的字,而“吖”字时比较小的字,通常可以用和“吖”字来比大小来确定是否为汉字。“吖”非常用字,不方便输入,下面将整个公式贴出。

=SUM(N(MID(A2,ROW($1:$50),1)>="吖"))


04

查找字符串内第一个数字的位置

如果字符串内仅有数字,没有其它单字节的字符,我们其实是可以使用SEARCHB函数的。整个方法在第二期里就已经介绍过了。

下面的方法均使用&的方式容错避免产生错误值。



一句话解释:MATCH函数这个公式的思路是将文本转换为错误值,然后利用MATCH查找第一个数字;而FIND函数这个则是要找到位置最小的那个数,也就是第一个数。第二个公式中用1/17也是可以的。


05

查找字符串内第一个英文字母的位置



这一组公式,尤其是第二个公式稍显复杂,这里不做详细解释了,请朋友们记住并会套用即可。


06

查找字符串内第一个汉字的位置



一句话解释:

第一个公式,MIDB函数提取单字节字符。汉字是双字节,因此提取不到,返回一个空格。MATCH函数查找第一个空格的位置。

第二个公式,LENB函数返回字节数。由于汉字是双字节,因此返回值是2。MATCH函数查找第一个“2”出现的位置。

第三个函数不许过多解释了。


好了朋友们,今天和大家分享的内容就是这些了!喜欢我的文章请分享、转发、点赞和收藏吧!如有任何问题可以随时私信我哦!

-END-

长按下方二维码关注EXCEL应用之家

面对EXCEL操作问题时不再迷茫无助

我就知道你“在看”

推荐阅读

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多