用Excel怎样统计出学生成绩各分数段内的人数分布呢?很多文章都推荐使用CountIF函数,可是每统计一个分数段都要写一条函数,十分麻烦。例如, 要在C58:C62内统计显示C2:C56内小于60分、60至70之间、70至80之间、80至90之间、90至100之间的分数段内人数分布情况,要输入以下5条公式:
1. 在C58内输入公式统计少于60分的人数:=CountIF(C2:C56,"<60")
2. 在C59内输入公式统计90分至100之间的人数:=CountIF(C2:C56,">=90")
3. 在C60内输入公式统计80至90之间的人数:=CountIF(C2:C56,">=80")-CountIF(C2:C56,">=90"),
4. 在C61内输入公式统计70到80之间的人数:=CountIF(C2:C56,">=70")-CountIF(C2:C56,">=80"),
5. 在C62内输入公式统计60到70之间的人数:=CountIF(C2:C56,">=60")-CountIF(C2:C56,">=70")。
如果要把0至10之间、10至20之间、20至30……90至100之间这么多个分数段都统计出来,就要写上十条公式了。可见用COUNTIF()函数效率并不高。
其实,Excel已经为我们提供了一个进行频度分析的FreQuency数组函数,它能让我们用一条数组公式就轻松地统计出各分数段的人数分布。
FREQUENCY函数说明如下:
--------------------------------------------------
语法:
FREQUENCY(data_array,bins_array)
参数:
data_array:需要进行频率统计的一组数。
bins_array:为间隔的数组,该间隔用于对data_array中的数值进行分组。
返回值:
以一列垂直数组返回某个区域中数据的频率分布。例如,使用函数 FREQUENCY 可以计算在给定的分数范围内测验分数的个数。
注:
1、返回的数组中的元素个数比 bins_array(数组)中的元素个数多 1。所多出来的元素表示超出最高间隔的数值个数。
2、由于返回结果为数组,必须以数组公式的形式输入。即给定FREQUENCY的参数后,必须按Ctrl+Shift+Enter完成,而不能直接按确定。
--------------------------------------------------
一个统计成绩分布的例子:
步骤:
1、输入学生成绩。(如图中的"成绩")
2、根据自己需要输入间隔值(即图中的"分段点"),该间隔值用于对成绩进行分段。
3、选择一个区域,该区域的单元格的个数=分段点个数+1。如图中,选择D2:D9单元格。
4、点击工具栏上fx(插入函数)以插入函数。在弹出的窗口中的搜索函数输入框中输入FREQUENCY,点击转到。在"选择函数"中选择找到的FREQUENCY函数,点确定。
5、在弹出的参数输入窗口中输入参数。在data_array中输入成绩所在单元格A2:A25,在bins_array中输入分段点所在单元格B2:B8,然后按
Ctrl+Shift+Enter(
不要点确定)。
确定后公式两端出现一对大括号({}),此大括号不能直接输入。 频率统计结果显示在D2:D9单元格中。
参考资料:
[1] 《在Excel中用FreQuency函数提高效率》 : http://www.pconline.com.cn/pcedu/soft/office/excel/10311/238278.html
[2] 《Excel FREQUENCY代替COUNTIF函数》 : http://hi.baidu.com/study__%D0%A1%B5%B6/blog/item/f65301f4ba1775ee7709d7c9.html
[3] 《用excel统计各分数段人数------使用" FREQUENCY函数》 : http://www.bacui.cn/Article/zxb11111111/zhuantihuodong/200605/20060523165715.html
[4] 《Microsoft Excel 帮助》