楼主 亡者天下 |
下图所示为某学校高一年级期末考试各班成绩汇总表:
现在需要将各科成绩排名前两名的学生的姓名班级及成绩统计出来,该如何实现呢?
解决方案:通过编辑OLE DB查询创建数据透视表,再在透视表中使用筛选功能即可实现。
步骤: 1、编辑OLE DB查询,创建数据透视表,语句如下:- select 班级,姓名,"语文" as 科目, 语文 as 成绩 from [成绩表$] union all
- select 班级,姓名,"英语" as 科目, 英语 as 成绩 from [成绩表$] union all
- select 班级,姓名,"数学" as 科目, 数学 as 成绩 from [成绩表$] union all
- select 班级,姓名,"物理" as 科目, 物理 as 成绩 from [成绩表$] union all
- select 班级,姓名,"化学" as 科目, 化学 as 成绩 from [成绩表$] union all
- select 班级,姓名,"生物" as 科目, 生物 as 成绩 from [成绩表$] union all
- select 班级,姓名,"政 治" as 科目, 政 治 as 成绩 from [成绩表$] union all
- select 班级,姓名,"历史" as 科目, 历史 as 成绩 from [成绩表$] union all
- select 班级,姓名,"地理" as 科目, 地理 as 成绩 from [成绩表$]
2、将“科目”字段拖入“报表筛选”区域,“姓名”和“班级”字段拖入“行标签”区域,“成绩”拖入“数值”区域; 得到如下透视表:
3、对科目进行筛选某一个科目(例如:地理),将光标定位在D3单元格,选择“开始”选项卡中的“筛选”功能, 再在C3单元格右侧下拉按钮中,选择“数字筛选”——>“10个最大的值”,将弹出的对话框中中间的文本框中的 10改为2,点击“确定”即可;
4、美化表格,得到效果图如下:
现在只要对页字段进行筛选即可得到某一个科目的前两名的学生的详细信息。
如何显示各科目前两名学生的信息.rar
该帖已经同步到 亡者天下的微博 |