表格中自适应成绩查询系统

菜单式成绩查询
每个学校都会用到成绩查询。常规的查询查询方式是输入待查询对象的相关信息后让系统提取成绩资料。

这种方式有两个缺点:

1.需要录入文字,对于不会打字或者字符录入速度慢者不方便;

2.如果录入了错别字、同音字,则无法查询到正确的结果。

今天教大家一种新的查询方式,不需要录入任何字符就可以查询任何资料。同时因为不需要录入字符,也就避免了错误的产生。

假设图A是学校中所有班级的平均成绩表,其中各系别的学期长度不同,分别有2年、3年、4年,所以中间存在空白区。

图A 平均成绩表

在本例中,“成绩表”中存放所有数据,需要在“查询表”中显示结果。设计查询功能步骤如下:

一:定义名称

1.进入工作表“查询表”,单击A1单元格,选择菜单工具栏中插入名称定义,打开定义名称对话框;

2.在名称处键入“系别”,在引用位置处键入:

“=OFFSET(成绩表!A1,1,,COUNTA(成绩表!A:A)-1)”

然后单击“添加”按钮完成第一个名称的定义过程。

3.继续在名称框中键入“年级”,在引用位置处键入以下公式:

“=OFFSET(成绩表!$A$1,,1,,COUNTA(INDIRECT("成绩表!"&(MATCH(查询表!$A$1,成绩表!$A:A,0)&":"&MATCH(查询表!$A$1,成绩表!$A:A,0))))-1)”

然后单击“添加”按钮,并关闭窗口。

提示:定义名称时当前的活动单元格位置很重要。在本例中需要选择A1再定义名称。

本例中两个公式的含义如下:

1.“=OFFSET(成绩表!A1,1,,COUNTA(成绩表!A:A)-1)”

这个公 式是指以成绩表中A1单元格为参照点,偏移1行、0列(Offset的第二参数和第三参数被忽略时默认值为1),偏移的高度为COUNTA函数所返回的结 果减1,即A列中非空单元格个数减1。这个公式用于自适应系别的增减。当在工作表中添加新的系别如“演艺系”时,公式可以自动将之提取出来

2.“=OFFSET(成绩表!A1,,1,,COUNTA(INDIRECT("成绩表!"&(MATCH(查询表!A1,成绩表!A:A,0)&":"&MATCH(查询表!A1,成绩表!A:A,0))))-1)”

这个公式的功能是根据A1的系别返回其对应的年级。结果是一个包含多单元格引用的数组。如果A1是“文学系”,则本公式产生一个一至四年级的数组。如果A1是“法律系”,则本公式将产生一个一至二年级的数组。

本公式的运算较复杂。可以分段理解。其 中,MATCH函数用来计算“查询表”中A1单元格的系别在“成绩表”中A列中的排位,并将其结果返回给INDIRECT函数转换为行引用。而 COUNTA函数则计算该引用行中非空单元格的个数,此个数控制着年级的数量,使用公式具有自适应的能力。整个公式将会以“成绩表”中A1单元格为参照, 偏移0行、1列,产生一个高度为1(Offset的第四参数和第五参数忽略时默认值为1)、宽度为COUNTA函数返回值的区域引用。

二:生成下拉菜单

为了实现下拉菜单选择条件以查询成绩,需要将前一步所定义的名称套用到数据有效性,产生下拉菜单序列,供用户选择。

1.选择“查询表”中的A1,单击数据有效性,打开“数据有效性”对话框;

2.在“允许”下拉列表中选择“序列”,在“来源”框中输入公式“=系别”,见图B所示。然后单击“确定”按钮返回工作表。

图B 设置数据有效性

3.选择B1单元格,重复步骤1和2,对B1添加数据有效性,其来源的公式为“=年级”。

注意:“来源”框中的公式必须用半角的等号,否则无法得到正确结果。

三:设计成绩公式下拉列表设计完毕后,需要利用一个单元格来显示查询结果。
1.选择C1单元格,输入以下公式:
=INDEX(成绩表!A1:I100,MATCH(A1,成绩表!A:A,0),MATCH(B1,成绩表!1:1,0))&""

本公式中,利用MATCH函数计算A1系别在“成绩表”中A列中的排位,以及计算B1年级在“成绩表”中1行中的排位,然后通过这两个座标返回区域A1:I100中的相应单元格的值。

而公式中的“&""”可以将零值转化为空白。如INDEX引用的区域是空白时,结果会为0,为了将此0值转化为空白,则在公式后面添加“&""”。

四:查询

1.在单元格A1单击,从下拉列表中选择“法律系”,见图C所示;

2.在单元格B1单元,下拉列表中产生法律系对应的两个年级。从中选择“二年级”,在C1单元格将会自动产生查询结果:外语系三年级的成绩84。见图D所示;

3.单击A1选择“文学系”,则B1的下拉列表将产生四个年级;

4.如果在“成绩表”中添加新的系别或者添加年级数,A1和B2的下拉列表将自动更新。

图C 选择系别

图D 选择年级后产生查询结果

总 结:在利用名称配套数甩有效性产生下拉列表时,都利用OFFSET函数的第四参数或者第五参数指定一个区域引用来达成。而为了让公式适应数据的增减,通常 使用COUNTA函数来获取行或者列中的非空单元格个数,做为OFFSET的参数。本例中展示了公式、名称、数据有效性结合的多功能、自适应查询系统。

自动生成查询.rar

时间: 2024-10-22 09:54:59

表格中自适应成绩查询系统的相关文章

项目压缩包-ASP.net+SQL2008学生成绩查询系统

问题描述 ASP.net+SQL2008学生成绩查询系统 成绩查询系统的设计与实现 一.系统设计基本要求: 1.系统分为学生端和教师端. 2.学生端要求采用B/S架构完成,教师端要求用C/S架构完成. 3.教师端用户分为教务管理员和普通教师两类,教务管理员主要完成课程信息设置.学生名单录入.任课教师信息登记功能,普通教师主要完成登录.学生成绩录入功能. 4.学生端完主要成登录和成绩查询功能. 5.使用.NET技术和SQL Server数据库,采用三层设计模式. 6.系统界面美观,操作方便. 解决

VB实现的电话语音成绩查询系统

一.引言 电话语音查询系统已广泛应用于电话银行.话费查询.证券 委托.自动缴费(水.电.气等费用).语音信箱.自动声讯服务.民航.公共 考务.铁路等部门的信息查询以及各种公共场所自动回答顾客提问等领域. 电话语音查询系统的工作流程是用户拨通电话语音查询系统的热线电话, 并根据电话中的语音提示,通过按电话键来查询电脑中存储的各种信息: 电脑自 动对用户的操作进行应答,并以语音形式将信息反馈给用户.其组成结构如图1 所示. 图1 自动语音查询系统 二.组成 电话语音查询系统 是现代电信技术与计算机技

简易成绩查询系统

先建一个数据库(std.mdb):其中有两个表 1.pw(密码表) 2.score成绩表然后建两个Jsp文件enter.jsp(登录页面,用来验正身份的)-----------------------------------------------<%@ page contentType="text/html;charset=gb2312"%><html><title>个人成绩查询登录</title><body><cen

表格中 老师轻松查询学生的各科成绩

上学的时候,经常到了期末各位同学的家长跑到学校来找老师咨询自己孩子的期末考试情况,老师们也为了应付做了本厚厚的成绩本,一页一页的翻查着,其实利用WPS表格可以相当轻松的解决相关查询问题,免去一天到晚翻本子的功夫.具体如下: 效果预览 ① 制作好相关的数据,在单元格H3中输入公式:"=VLOOKUP(H2,B4:E21,2,0)" VLOOKUP表示:在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值. 图1 单元格H4.H5同样输入,公式根据对应情况做相应

大学英语四六级成绩查询系统核心代码

查询系统 前几天做了个大学英语四六级成绩查询系统,一个 phprpc 版本,一个 wap 版本.它们的核心代码都是相同的.下面就是从 etang.cet 获取大学英语四六级成绩的核心代码: 下载: cetquery.php function query($examid, $examtype) {     $examid = trim($examid);     $examtype = trim($examtype);     if (!is_numeric($examid)) {        

2009年全国高考成绩查询电话与网站

省市 出分时间 查询方式   广西 6月23日 1.168声讯台:查询号码16889001 2.拨打中国电信号码百事通.全区各地的考生可拨打 118114(市话费),按照提示音操作,即可查询到自己的高考成绩. 114人工台暂不提供高考成绩查询服务. 3.手机短消息:小灵通用户编辑短信 GKFS+准考证号码 +身份证号码最后 4位数(注: GKFS为"高考分数" 4个字的首个拼音字母, GKFS.准考证号码.身份证号码最后 4位数是相连的,中间无空格)发送至 10659200111,即可

山西省高考成绩查询已经开始

新华网太原6月25日电(记者李建平)记者25日从山西省招生考试管理中心了解到,山西省2009年普通高校招生考试评卷.登分统计工作已圆满结束,成绩于25日揭晓.考生可登录山西招生考试网(http://www.sxkszx.cn/).通过各市.县(市.区)高考成绩查询系统或拨打声讯台16897799查询高考成绩. 招生考试管理中心提醒,考生对主观卷成绩有疑义的,可于6月27日前到当地县(市.区)招办办理申请查卷手续,逾期不再受理.凡院校有缺额计划,山西省招生考试管理中心会及时向社会公布征报志愿:凡<

Nginx + Shiro + Ehcache 实现负载均衡集群(成绩报告查询系统)

项目介绍 最近在做一款产品,对外提供学生成绩报告的查询,支付,查看以及下载等一系列功能,这里就简称成绩报告查询系统吧. 初步参赛人数十万左右,可能会存在相对高的并发同时在线,所以开发阶段就对负载均衡集群做了设计. 当然,涉及到负载均衡集群,就要考虑的Session存储的问题,由于项目本身使用了Ehcache做本地缓存,Shiro对其做了很好的封装,并且Ehcache也是支付分布式缓存同步的.所以,采用Ehcache做session存储暂且是一种实施方案. 关于Ehcache分布式缓存见:http

excel表格中的数据怎么实现快速查询?

  excel表格中的数据怎么实现快速查询?有时候我们需要在多工作薄内查询数据,而一个个的手动点开然后记录下来会很麻烦,这里有个简单的方法. 1.首先我们打开一张工作样表作为例子. 2.这里是一张工资表,我们如果需要查询比较某人这三个月的工资总额情况,正常操作是点开每一张工资工作薄,然后将其中数据记录下来再进行比较.这样的方式就非常的繁琐.当然我们也可以使用公式来做工作薄引用. 3.如果是工作薄比较多,那么我们需要使用公式函数来进行查询,并且我们需要先对工作薄名称进行统一的命名.我们在单独的一列