每次阶段考试成绩出来后,班主任都要对考试情况从多个角度作总体分析,以便科任老师和本班学生对前阶段学习情况作出恰当的总结,从而明确下一阶段的学习目标并调整学习策略。由于从多个角度分析,考试成绩数据处理工作量大,用INDEX函数建立数组公式,可以实现考试成绩数据按要求自动处理,从而减轻班主任的工作负担。
某次考试成绩数据及分析表如下(见图1、图2)。


一、数据预处理
1.计算三门总分
在成绩表J1单元格输入标题“三门总分”,在J2单元格输入求和函数“=SUM(成绩!C2:E2)”,向下填充至末行。
2.计算五科名次
在成绩表K1:O1单元格依次输入标题:“语文名次”“数学名次”“外语名次”“物理名次”“生物名次”,在K2单元格输入排序函数“=RANK(C2,C:C)”,向右填充至O2,向下填充至末行。
3.计算三门总分名次
在成绩表P1单元格输入标题“三门名次”,在P2单元格输入排序函数“=RANK(J2,J:J)”,向下填充至末行。
二、数据分析
1.生成双A340以上学习榜样名单列表
在分析表B4单元格输入公式如下:
{=INDEX(成绩!$A:$O,SMALL(IF((成绩!$H$2:$H$49="A")*(成绩!$I$2:$I$49="A")*(成绩!$J$2:$J$49>=340),ROW(成绩!$2:$49),4^8),ROW(成绩!B1)),COLUMN(成绩!B1))&""}
按Ctrl+Shift+Enter生成数组公式并填充至末行。
2.生成1B1C 305以上学习榜样名单列表
在分析表C4单元格输入公式如下:
{=INDEX(成绩!$A:$O,SMALL(IF((((成绩!$H$2:$H$49="D")+(成绩!$I$2:$I$49="D")+(成绩!$H$2:$H$49="C")*(成绩!$I$2:$I$49="C"))=0)*(成绩!$J$2:$J$49>=305),ROW(成绩!$2:$49),4^8),ROW(成绩!B1)),COLUMN(成绩!B1))&""}
按Ctrl+Shift+Enter生成数组公式并填充至末行。
3.生成单科前5名名单列表
在分析表F4单元格输入公式如下:
{=INDEX(成绩!$A:$O,SMALL(IF(成绩!K$2:K$49<6,ROW(成绩!$2:$49),4^8),ROW(成绩!$B1)),COLUMN(成绩!$B1))&""}
按Ctrl+Shift+Enter生成数组公式向右填充至J4,并填充至末行。
4.生成语数外薄弱学科名单列表
在分析表F13单元格输入公式如下:
{=INDEX(成绩!$A:$O,SMALL(IF((成绩!K$2:K$49>32)*((成绩! $P$2:$P$49>29)+(成绩!$P$2:$P$49<46)),ROW(成绩!$2:$49),4^8),ROW(成绩!$B1)),COLUMN(成绩!$B1))&""}
按Ctrl+Shift+Enter生成数组公式向右填充至H4,并填充至末行。
5.生成选科薄弱学科名单列表
在分析表I13单元格输入公式如下:
{=INDEX(成绩!$A:$O,SMALL(IF((成绩!N$2:N$49>37)*((成绩!$P$2:$P$49>29)+(成绩!$P$2:$P$49<46)),ROW(成绩!$2:$49),4^8),ROW(成绩!$B1)),COLUMN(成绩!$B1))&""}
按Ctrl+Shift+Enter生成数组公式向右填充至J4,并填充至末行。
6.生成达等不达线名单列表
在分析表L5单元格输入公式如下:
{=INDEX(成绩!$A:$O,SMALL(IF((((成绩!$H$2:$H$49="D")+(成绩!$I$2:$I$49="D")+(成绩!$H$2:$H$49="C")*(成绩!$I$2:$I$49="C"))=0)*(成绩!$J$2:$J$49<305),ROW(成绩!$2:$49),4^8),ROW(成绩!B1)),COLUMN(成绩!B1))&""}
按Ctrl+Shift+Enter生成数组公式并填充至末行。
7.生成达线不达等名单列表
在分析表M5单元格输入公式如下:
{=INDEX(成绩!$A:$O,SMALL(IF((((成绩!$H$2:$H$49="D")+(成绩!$I$2:$I$49="D")+(成绩!$H$2:$H$49="C")*(成绩!$I$2:$I$49="C"))>0)*(成绩!$J$2:$J$49>=305),ROW(成绩!$2:$49),4^8),ROW(成绩!B1)),COLUMN(成绩!B1))&""}
按Ctrl+Shift+Enter生成数组公式并填充至末行。
至此,数据处理全部完成,以后每次考试结束后,只要导入成绩数据,这些名单列表全部会自动生成(见图3)。

三、总结
1.INDEX函数返回学生姓名列表中的指定姓名,条件由行序号和列序号的索引值给定。
2.公式填充到其他单元格后,列序号的索引值自动变化,行序号的索引值结合SMALL函数自动变化,二者结合将依次返回列表中符合条件的学生姓名。
3.IF函数进行条件筛选返回符合条件的学生姓名所在的行号。
4.多条件逻辑判断时,乘号*表示且关系要求同时为真才为真(同1得1),加号+表示或关系只要求一个为1即为真(同0得0)。