多语言展示
当前在线:1411今日阅读:152今日分享:13

如何进行多条件统计

信息时代数据分析存在于各个领域,它的重要性无须多说,最简的就是计数,说简单是因为数数谁都会,但要数出花样来也不容易,今天我来给大家介绍一下在Excel中如何进行多条件计数。
工具/原料

Excel2003、Excel2010

方法1
1

现在要统计班里学生们考试的及格率,及格率=及格学生数量/学生总数,这里我们需要两个数据,一个是班里学生的总数,再有就是及格学生的数量,总数很容易知道,用函数count()或counta()函数立刻就能算出。见下图所示,总共有14名学生。

3

上例是单条件统计,现在继续增加难度!如果我们把成绩分成优、良、中、差四等,差和优秀分别是小于60分和大于等于90分,60分到79分为中,80分到89分为良,差和优秀属于单条件统计,而中和良我们就得用到两个条件,以中为例两个条件分别是成绩>=60和<=79,因为countif只允许接受一个条件,而不能用and,or这种逻辑运算符连接。

4

这时我们可以变通一下!通过分析我们知道,大于等于60分的学生里包含了大于等于80分的学生,所以我们只要分别计算出这两个数值做个减法,就可以得到60分到79分之间的数量,具体公式为:=COUNTIF(B2:B15,'>=60')-COUNTIF(B2:B15,'>=80'),结果如下图。这种的方法可行,但不够直观,有没有更直观的方法呢,答案是肯定的。

方法2:
1

我们先借辅助列来分解一下步骤,首先,我们在C2单元格写出逻辑表达式:=(B2>=60)*(B2<=79),为什么要用*号连接呢?*号在这里的作用相当于and,而且可以把布尔值true和false转换成对应数值1和0,以B2说明,B2值为59,所以B2>=60为false,B2<=79为true,在运算时false转换为0,true转换为1,最终运算结果为:0*1=0。我们把这个运算式向下填充至C15.结果如下图

2

在上图中我们可以看到,凡是符合条件>=60且<=79的结果为1,否则为0,接下来我们只要把这列数相加,就得出中档的学生数量。

3

通过分析可以看出我们需要两个步骤来实现,第一步计算出每个同学的分数是否符合条件的逻辑值,第二步对这些值相加。把这两步组合为一个公式就是:sum((B2:B15>=60)*(B2:B15<=79)),输入完成后同按住Shift+Ctrl再按Enter,结果如图。这个是数组公式所以要用三键连按来完成。

方法3

如果你觉得三键连按太麻烦可以用函数sumproduct(),公式为:sumproduct((B2:B15>=60)*(B2:B15<=79)),直接回车即可,结果如图,这种方法的好处是不管您有多少个条件,直接往里加!

方法4

如果您使用的是Excel2007及以上版本,那问题就简单了,=COUNTIFS(B2:B15,'>=60',B2:B15,'<=79'),COUNTIFS是新版本Excel新增的函数,countif的增强版,有多少条件都不用愁!好用到让您把所有的烦恼都忘了~

注意事项

条件区域的地址一定要相同,否则会出现意想不到的结果

推荐信息