大数跨境
0
0

从字符串中统计指定字符出现的个数

从字符串中统计指定字符出现的个数 Excel数据分析之道
2019-01-21
0
导读:逻辑思路,是解决问题的根本途径!


一个学生问了这样一个问题:有一个表格,记录每个人的获得证书情况,每个“初级已发证”给56元,每个“中高级已发证”给96元,请计算每个人的实际总金额。模拟数据如下。



这个问题的实质,是如何从字符串里统计指定字符出现的个数。例如,在B2单元格中,“初级已发证”有3个,那么,这个如何统计出来?


下面是一个使用的统计公式:


=(LEN(B2)-LEN(SUBSTITUTE(B2,"初级已发证","")))/LEN("初级已发证")


这个公式的基本原理是:


(1)先用SUBSTITUTE函数将指定字符串"初级已发证"替换掉,就是表达式:SUBSTITUTE(B2,"初级已发证",""),这样,就得到了没有"初级已发证"的一个新字符串,如下所示:


        "2014,2015,2016,"


(2)原来的字符串是:


        "2014初级已发证,2015初级已发证,2016初级已发证,"


(3)用LEN分别计算这两个字符串的长度,分别为:15和30


(4)这两个字符串长度相减是30-15=15,这个15就是被剔除出去的(也就是要统计的)字符串 "初级已发证" 的总长度。


(5)这样,将这个总长度 15 除以字符串 "初级已发证" 本身长度(就是表达式 LEN(B2) 的结果,是5),就是该字符串的个数了:


 15/5=3


(6)由于要统计两种证书的总金额,可以将两种证书的出现个数分别计算出来,最后相加即可,最后的公式如下:


=56*(LEN(B2)-LEN(SUBSTITUTE(B2,"初级已发证","")))/LEN("初级已发证")+96*(LEN(B2)-LEN(SUBSTITUTE(B2,"中高级已发证","")))/LEN("中高级已发证")


----------------------------------------------------------------

Excel函数并不难,难的是如何结合具体表格来寻找解决问题的逻辑思路!




【声明】内容源于网络
0
0
Excel数据分析之道
全面介绍Excel在企业数据分析中的各种应用,实际案例模板分享,经验心得,帮助个人和企业提升Excel应用能力。
内容 1106
粉丝 0
Excel数据分析之道 全面介绍Excel在企业数据分析中的各种应用,实际案例模板分享,经验心得,帮助个人和企业提升Excel应用能力。
总阅读332
粉丝0
内容1.1k