下图的表格记录了各位同学各科的考试成绩。现在的要求是统计下至少有2科不及格的人数。小于60分的为不及格。结果如I3单元格所示。这个问题分步来做的话也简单,先算出每个同学有几科不及格;然后判断不及格的科数是否大于等于2。
现在我们希望用一条公式完成,这时就要求我们以数组的方式得到每个同学的不及格科目数。下面就来分享三种方法。
公式如下图所示,offset构建了一个多维引用,形成了8个区域。相当于把每一行的成绩独立成一个区域。
countif对offset形成的多维引用条件计数,就是统计每一行的成绩中小于60分的有几个。每一行分别统计,最后得到一个数组,结果如下图所示,这样就统计出每个同学不及格的科目数。再统计下不及格科目数中大于等于2或大于1的有几个,就完成了。
2)MMULT函数
公式如下图所示,先判断B3:G10的成绩是否小于60,小于的返回TRUE,不小于的返回FALSE。再用n函数把TRUE转成1,FALSE转成0。
下图0和1的区域就是n函数返回的结果,然后用mmult对n函数结果的每一行数字求和,这样也可以以数组的方式得到每个同学不及格的科目数,如下图所示。最后统计不及格科目数中大于1的有几个,完成。公式如下图所示,先用if函数判断下B3:G10的成绩是否小于60,如果小于60,返回对应的行号,否则返回false。结果如下图黄色区域所示。然后用frequency对if返回的结果分段计数,也可以统计出每个同学不及格的科目数,如下图所示。最后统计出不及格科目数中大于1的有几个,完成。PS:以上3种按每行单独计数的方法,也可以应用到其他条件更复杂的问题中。当然我们也可以提取出至少有2科不及格的同学的姓名。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。