时间:2018-5-24来源:本站原创作者:佚名

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

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

解决步骤如下:

Step1:

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

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

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

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

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

Step2:

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

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

Step3:

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

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

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

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

零基础学ExcelVBA-第10期公开课时间:-4-24、-4-26(晚20:00~21:30)正式课时间:-5-3——-6-5讲师:hehex课程详情:







































白癜风早期图片
北京中科医院是怎么样

转载请注明原文网址:http://www.gzdatangtv.com/bcyytx/10871.html

------分隔线----------------------------