Excel实例应用:字符提取+模糊求和
编辑时间:2017-05-06 作者:聂春霞 浏览量:2153 来源:Excel之家ExcelHome

如图1,要对A列应用名称为同一款游戏名称的付费金额求和,比如,A2:A5都是王者荣耀,要对B2:B5求和。

1.png

也许你会说这还不简单吗,直接用sum(B2:B5)不就行了,可是每种应用名称对应的行数不一样,要生成的报表如图2。


2.png


解决步骤如下:

Step1:

要生成图2报表,首先得把A列应用名称的简称提取出来。

A列内容的特点是前面是文字,中间是数字,只需提取数字前面的文字,因此考虑left或leftb函数提取,C2公式

=LEFTB(A2,SEARCHB("?",A2)-1)

3.png

公式意思是先找出A2中单字节的数字所在的字节数,字节数减去1就是数字前面的汉字字节数,再用leftb取左边的汉字。


一个汉字代表2个字节,半角状态下的一个数字代表1个字节。Searchb是在一个字符串中查找特定字符位置的函数,而且可以区分单双字节,它和Find的区别是可以使用通配符。公式中的?就是表示 任意一个单字节的字符,属通配符,不是真的查找问号。


Step2:

接下来给C列加个字段名称“应用名称简称”就可以用数据透视表得到图2结果,

4.png


如果用公式,需要对C列提取不重复内容,可以用数据→删除重复项来完成。

Step3:

D列是A列的简称,借助通配符*用SUMIF函数求和。

E2公式=SUMIF(A:A,"*"&D2&"*",B:B)

5.png

&是连接符,D2前后连接*,表示D2前后有任意个字符,如果A列内容和D列前后带任意个字符的内容相符就求和。

一个问题的解决,用到了leftb, searchb,sumif等多个函数,还有通配符*和?,删除重复项、数据透视表等多个技巧,所以说,混职场还是要有点综合实力哦。


来说两句吧