论文部分内容阅读
在作品登记表中,对于有学员多次提交作品记录的情况,如何按学员姓名提取其作品与成绩表以供学员核对?本文提供两种解决办法。
案例与分析:
在如图1左侧的学生作品登记表中存放了学生在不同日期上交电子作品的记录,许多学生都上交过多次作品。到了学期末,需要将源数据表中的数据按姓名单独提取到另外一个表中进行打印,以供学生核对(如图1中间)。遇到这样的问题,我们一般会想到用自动筛选。但自动筛选出的数据要想在另外的表中按统一格式打印,还得一个个复制,太麻烦。此外还会想到用VLOOKUP函数,但由于源数据表中按姓名提取的话会有多条重复记录,而VLOOKUP函数只能查找第一个符合条件的值,这显然不行。其实,有另外两种方法可以实现,一个是用辅助列法,一个是用公式嵌套法。
在源数据表的最右侧插入一个辅助列,即本例中的E列,在E3单元格输入函数“=COUNTIF ($A$2:A3,Sheet2!$G$1)”,并向下填充到所有记录(图2)。
接着,在提取显示表Sheet2中A3单元格输入公式“=IFERROR(INDEX(Sheet1!A:A,MATCH(ROW(Sheet1!1:1),Sheet1!$E:$E,)),"")”,向右向下拖动填充到相应单元格,这时就可以根据G1单元格中输入或选择的值进行数据的筛选提取了(图3)。
当然,如果不用辅助列,而用一个嵌套的公式,也能够提取相关数据。
在A3单元格输入:=IFERROR(INDEX(Sheet1!A:A,SMALL(IF(Sheet1!$A$2:$A$30=$G$1,ROW(Sheet1!$A$2:Sheet1!$A$30)),ROW(Sheet1!1:1))),""),同时按下Ctrl+Shift+Enter组合键,向右向下拖动填充即可。
案例与分析:
在如图1左侧的学生作品登记表中存放了学生在不同日期上交电子作品的记录,许多学生都上交过多次作品。到了学期末,需要将源数据表中的数据按姓名单独提取到另外一个表中进行打印,以供学生核对(如图1中间)。遇到这样的问题,我们一般会想到用自动筛选。但自动筛选出的数据要想在另外的表中按统一格式打印,还得一个个复制,太麻烦。此外还会想到用VLOOKUP函数,但由于源数据表中按姓名提取的话会有多条重复记录,而VLOOKUP函数只能查找第一个符合条件的值,这显然不行。其实,有另外两种方法可以实现,一个是用辅助列法,一个是用公式嵌套法。
1. 辅助列法提取数据
在源数据表的最右侧插入一个辅助列,即本例中的E列,在E3单元格输入函数“=COUNTIF ($A$2:A3,Sheet2!$G$1)”,并向下填充到所有记录(图2)。
接着,在提取显示表Sheet2中A3单元格输入公式“=IFERROR(INDEX(Sheet1!A:A,MATCH(ROW(Sheet1!1:1),Sheet1!$E:$E,)),"")”,向右向下拖动填充到相应单元格,这时就可以根据G1单元格中输入或选择的值进行数据的筛选提取了(图3)。
2. 公式法提取数据
当然,如果不用辅助列,而用一个嵌套的公式,也能够提取相关数据。
在A3单元格输入:=IFERROR(INDEX(Sheet1!A:A,SMALL(IF(Sheet1!$A$2:$A$30=$G$1,ROW(Sheet1!$A$2:Sheet1!$A$30)),ROW(Sheet1!1:1))),""),同时按下Ctrl+Shift+Enter组合键,向右向下拖动填充即可。