excel分类汇总时,如何对某列中满足某些条件的数据进行计数?

如图,我想对每个班级,每一科,大于80分的人,进行计数,请问如何用分类汇总实现,或用其他方法实现。谢谢
想弄成如下图所示的情况。

亲,添加一个辅助列可以解决哦。详见附件的操作视频。看不见附件请按F5刷新页面。

 

第1步、在最后一列添加一个辅助列,公式如下,按Ctrl+Shift+Enter结束输入(数组公式):

=IF(PRODUCT(IF(E2:J2>80,1,0))=1,C2&"班,每科大于80分","有科目小于80分")

 

第2步、对数据按辅助列排升序

 

第3步、对数据分类汇总,“分类字段”就是辅助列,汇总方式“计数”,汇总项“语文”、“数学”……

 

追问

方法不错,学习了,但是并不是我的要求。
例如:01班数学大于80的是3人,有一个人90分,弄到倒数第二行了。

追答

亲,您到底要“每一科”成绩都大于80分的才统计,还是分别对单科成绩大于80分的统计?

追问

对单科统计,例如下边的图片,统计单科大于90分的人数,我是笨方法弄得,五个班可以弄,但总共需要弄27个班呢,我的方法就太慢了。求快方法。谢谢

追答

亲,您看这样行吗,M2输入公式:=COUNTIFS($C:$C,$L2,E:E,">80"),右拉,下拉,覆盖红框的区域。

追问





不行啊,另外能给解释一下公式么,要不下回自己不会用了,我平时用公式,都是这样流程:插入--函数     ,这样直接输入不会啊。谢谢

追答

亲,您是Excel2003么?2003不支持countifs函数,我在修改一下,您在M2改为输入这个就行了:
=SUMPRODUCT(($C:$C=$L2)*(E:E>80)),右拉,下拉。

SUMPRODUCT是乘积求和公式。
($C:$C=$L2)这部分是指第一个条件:C列从第一个开始到最后一个,如果等于L2,则逻辑条件成立,逻辑值就是1(TRUE);否则逻辑值就是0(FALSE);
(E:E>80)这部分指第二个条件:E列,也就是语文列,从第一个开始到最后一个,如果大于80分,则逻辑条件成立,逻辑值就是1(TRUE);否则逻辑值就是0(FALSE);

这两个条件“*”连接,做乘法。意思就是逻辑值相乘。如果两个条件都成立,则1x1=1;只要有一个不成立,则变成0乘另一个数,结果就是0。

最后,SUMPRODUCT闪亮登场,它对刚才从第一个到最后一个的乘积求和。于是若干个1,0求和,最后的和就是1的个数,也就是满足这两个条件的个数。

最后注意一点:用这个函数的时候,多个条件分别用括号括起来,形如(...)*(...)*(...)*...;再注意地址中“$”的使用,以免拉动公式的时候,某些地址跟着自动变化。

追问

追答

亲,看不到完整的数据,是否01班的语文成绩都在图片中了?,我这儿运算正常,貌似是由于您的分数中有不正确的格式,比方说(仅仅只是打个比方)“127.5”写成了“127。5”。附件是我这边测试的文件,供参考。如果您不介意,也可以把文件发到我邮箱,我分析一下原因。邮箱地址私信给您了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-18
数据-筛选-自动筛选,选择大于80追问

这样只能对一科进行计数,我想对所有科目计数。

这样只能对一科进行计数,我想对所有科目计数。

第2个回答  2014-05-18
COUNTIF函数
相似回答