九九淘商城:Excel在学籍信息管理中的妙用_有关技巧

来源:百度文库 编辑:偶看新闻 时间:2024/04/27 14:08:53
Excel在学籍信息管理中的妙用(2009-03-15 16:06:17)

本文来源《现代教育导报》综合版

  近年来,随着各级各类学校办学规模的不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。为了做到学生信息管理规范化,实行学生学籍信息的计算机管理是可行而且必要的。但在现实生活中,很多学校并未配备专门的学籍管理软件。购进一套专门的管理软件,费用较昂贵。虽然现在能够较容易地找到许多免费版的学籍管理软件,但是,由于每个学校都有自己的管理特点和要求,因此这些软件在使用中总会存在一些不便之处。自己动手,用Excel建立一套适于学校具体需求的学籍信息管理系统是一个不错的选择。Excel功能强大,操作又很方便。它比用数据库系统开发的软件,在使用上更习惯,修改起来也更方便。  一、建立学籍信息库框架  首先,我们打开一个新的Excel表,建立一个学籍信息库框架。信息项目的设置,您可根据本校实际需要而定。利用单元格格式设置字体、图案。  二、妙用“有效数据”  在默认情况下,Excel对单元格的输入是不加任何限制的。但为了保证输入数据的正确性,可以为单元格组或单元格区域指定输入的有效范围。例如:为了保证身份证号是18位,可以为身份证号所在一列的单元格区域指定有效范围。为了用下拉列表快速输入“民族”、“政治面貌”,可以为“民族”、“政治面貌”所在列的单元格区域设置有效数据。  (一)设置身份证号的有效条件  1.设置有效条件  选定单元格区域。选取“数据”菜单的“有效数据”命令,打开“有效数据”对话框,单击“有效数据”对话框中的“设置”标签。在“允许”下拉列框中,选择允许输入的内容类型为“文本长度”;在“数据”下拉列框中,选择“等于”,“长度”为18。  2.显示警告信息  当身份证号输入不是18位时,显示“错误警告”。在“有效数据”对话框的“错误警告”标签里选中“输入无效数据时,显示警告信息”复选框,并输入要显示的错误提示信息。  (二)利用下拉列表快速输入“民族”、“政治面貌”  方法同上。区别是:在“允许”下拉列框中,选择允许输入的内容类型为“序列”;在“来源”文本框中输入“汉族,蒙古族,回族,藏族,维吾尔族等”。注意:在对话框中选择“提供下拉箭头”复选框,最后单击“确定”。   三、妙用身份证号码提取个人信息  (一)提取“性别”  例如,在I3单元格内输入身份证号码,在C3单元格输入函数:=IF(MOD(MID(I3,17,1),2)=1,“男”,“女”)。MID(I3,17,1),表示在I3中从第17位开始提取1位字符。MOD(MID(I3,17,1),2)=1,表示提取的字符除以2余数为1。IF(MOD(MID(I3,17,1),2)=1,“男”,“女”),表示所取字符除以2,如果余数为1,显示男,否则显示女。  (二)提取“出生日期”  在D3单元格输入函数=MID(I3,7,4)&“-”&MID(I3,11,2)&“-”&MID(I3,13,2),MID(I3,7,4)表示,在I3中从第七位开始提取4位字符&为文本连接符。  (三)自动生成“年龄”  在E3单元格中输入函数:=DATEDIF(D3,TODAY(),“Y”)。TODAY(),表示当前日期。DATEDIF(D3,TODAY(),“Y”),表示计算当前日期与出生日期的年差。  (四)提取“生源地代码”  在J3单元格输入函数:=LEFT(I3,6)。LEFT(I3,6),表示在I3中从左边开始提取6位字符。    (五)自动生成“生源所在地”  建立“代码库”工作表,输入代码及代码名称。并按“代码”排序。在K3单元格中输入函数:=LOOKUP(J3,代码库!$A$1:$A$192,代码库!$B$1:$B$192)。“代码库!$A$1:$A$192”表示绝对引用工作表“代码库”中单元格区域A1:A192 LOOKUP(J3,代码库!$A$1:$A$192,代码库!$B$1:$B$192),表示在“代码库”工作表中单元格区域A1:A192的数据中查找“J3”单元格指定的数值,然后返回工作表“代码库”中单元格区域B1:B192中相同位置的数值。  四、自动生成“班号”    在G3单元格中输入公式:=MID(A3,1,2)&“级”&MID(A3,3,2)&“班”。  五、妙用“条件函数”输出带有公式的空白表  当“身份证号”为空时,用身份证号码提取个人信息,返回“#VALUE”或“#N/A”,不美观。I5为空时,E5、K5显示效果。可用条件检测函数IF将公式进行修改,在E6单元格中输入公式:=IF(I6=“”,“”,DATEDIF(D6,TODAY(),“Y”)),表示I6单元格为空时,结果是显示效果为空。在I6单元格中输入身份证号时,输出结果为函数DATEDIF(D6,TODAY(),“Y”)的值。  六、快速录入信息  单元格格式及函数设置完成后,可进行信息的录入。为提高录入速度,可利用以下技巧:  (一)用“自动填充柄”,录入相同数据或具有增减可能的数据序列,复制公式    鼠标对准E6单元格右下角的填充柄,向下拖动到E100单元格,即将公式=IF(I6=“”,“”,DATEDIF(D6,TODAY(),“Y”))复制到E7-E100单元格。  (二)“自定义数据格式”让系统自动添加数据共同的部分  Excel支持自动填充功能。如果数据是不连续、无规则但具有共同部分的,自动填充功能就不能完成任务了。这时,可用“自定义数据格式”。例如:字段“证书编号”为十位数“2007063***”,共同部分“2007063”可以选定要输入“证书编号”的单元格区域。选择“格式”→“单元格”,打开“单元格格式”对话框,单击“数字”标签,选中“分类”下面的“自定义”选项,再在“类型”下面的方框中输入“200706300#”,按下“确定”按钮,“00#”是数字的预留位置。  以后,在上述单元格中,输入数值“1”则显示“2007063001”,输入“147”显示“2007063147”。  (三)自动更正法输入特殊文字  选择“工具”→“自动更正”,打开“自动更正”对话框,在“替换”下面填入“SJ”,在“替换为”下面填入“××省××市”(不含引号),然后按“确定”按钮。以后,只要在单元格中输入SJ及后续文本(或按“Enter”键)后,系统会自动将其更正为“××省××市”。   (四)查找替换法快速输入符号   有时要多次输入一些字或特殊符号(如山东省济南市),非常麻烦,这时可先在需要输入这些字符的位置上输入一个代替的字母(如S),等表格制作完成后,执行“编辑”→“替换”,打开“替换”对话框,在“查找内容”下面的方框中输入代替的字母“S”,在“替换值”下面的方框中输入“山东省济南市”,然后按“全部替换”按钮。  七、用“自动筛选”进行信息查询  我们经常在信息库中查询满足一定条件的记录,如查询“张鹏雨”的信息。可执行“数据——筛选——自动筛选”,单击“姓名”字段右下角的下拉箭头,单击“自定义”,筛选条件为“姓名=张鹏雨”,单击“确定”,则显示张鹏雨的信息。    八、用“数据透视表”汇总数据  我们经常进行大量的信息统计,如各班年龄分布情况、男女生情况、各民族情况、各类数据构成比例等。这项工作是一项非常繁重的工作。我们可以利用Excel自带的“数据透视表”功能为我们排忧解难。例如:我们对各班各年龄段人数进行汇总。执行“数据”——“数据透视表和数据透视图”——“数据透视表”——“下一步”。当出现“数据透视表和数据透视图向导3”时,我们可以点击“布局”按钮,接下来会出现“数据透视表和数据透视图向导-布局”,分别将“班号”、“年龄”、“姓名”字段按钮拖到“行”、“列”、“数据”区域上,按一下“确定”就完成了。  以上以学籍管理为例讲述的是一些常用功能的设置,您还可以举一反三,运用到其他信息管理中。 在excel中计算日期差工龄生日等

方法1:在A1单元格输入前面的日期,比如“2004-10-10”,在A2单元格输入后面的日期,如“2005-6-7”。接着单击A3单元格,输入公式“=DATEDIF(A1,A2,"d")”。然后按下回车键,那么立刻就会得到两者的天数差“240”。提示:公式中的A1和A2分别代表前后两个日期,顺序是不可以颠倒的。此外,DATEDIF函数是Excel中一个隐藏函数,在函数向导中看不到它,但这并不影响我们的使用。

方法2:任意选择一个单元格,输入公式“="2004-10-10"-"2005-6-7"”,然后按下回车键,我们可以立即计算出结果。

一、计算工作时间——工龄

假如日期数据在D2单元格。
=DATEDIF(D2,TODAY(),"y")+1注意:工龄两头算,所以加“1”。如果精确到“天”——=DATEDIF(D2,TODAY(),"y")&"年"&DATEDIF(D2,TODAY(),"ym")&"月"&DATEDIF(D2,TODAY(),"md")&"日"

二、计算2003-7-617:05到2006-7-713:50分之间相差了多少天、多少个小时多少分钟

假定原数据分别在A1和B1单元格,将计算结果分别放在C1、D1和E1单元格。

C1单元格公式如下:
=ROUND(B1-A1,0)D1单元格公式如下:=(B1-A1)*24E1单元格公式如下:=(B1-A1)*24*60注意:A1和B1单元格格式要设为日期,C1、D1和E1单元格格式要设为常规.

三、计算生日,假设b2为生日

=datedif(B2,today(),"y")

DATEDIF函数,除Excel2000中在帮助文档有描述外,其他版本的Excel在帮助文档中都没有说明,并且在所有版本的函数向导中也都找不到此函数。但该函数在电子表格中确实存在,并且用来计算两个日期之间的天数、月数或年数很方便。微软称,提供此函数是为了与Lotus1-2-3兼容。

该函数的用法为“DATEDIF(Start_date,End_date,Unit)”,其中Start_date为一个日期,它代表时间段内的第一个日期或起始日期。End_date为一个日期,它代表时间段内的最后一个日期或结束日期。Unit为所需信息的返回类型。

“Y”为时间段中的整年数,“M”为时间段中的整月数,“D”时间段中的天数。“MD”为Start_date与End_date日期中天数的差,可忽略日期中的月和年。“YM”为Start_date与End_date日期中月数的差,可忽略日期中的日和年。“YD”为Start_date与 End_date日期中天数的差,可忽略日期中的年。比如,B2单元格中存放的是出生日期(输入年月日时,用斜线或短横线隔开),在C2单元格中输入 “=datedif(B2,today(),"y")”(C2单元格的格式为常规),按回车键后,C2单元格中的数值就是计算后的年龄。此函数在计算时,只有在两日期相差满12个月,才算为一年,假如生日是2004年2月27日,今天是2005年2月28日,用此函数计算的年龄则为0岁,这样算出的年龄其实是最公平的。 
我设定一个时间,在表格里,想知道它与今天还相差几天怎么弄,如:我有个工作计划是2007-10-1日完成,要知道今天离完成日期还有几天?
A1 = 2007-10-1任何一格输入公式:=datedif(today(),a1,"d") 
在EXCEL中如何把B列与A列不同之处标识出来?  (一)、如果是要求A、B两列的同一行数据相比较:假定第一行为表头,单击A2单元格,点“格式”->“条件格式”,将条件设为: “单元格数值”“不等于”=B2 点“格式”->“字体”->“颜色”,选中红色,点两次“确定”。用格式刷将A2单元格的条件格式向下复制。B列可参照此方法设置。(二)、如果是A列与B列整体比较(即相同数据不在同一行):假定第一行为表头,单击A2单元格,点“格式”->“条件格式”,将条件设为: “公式”=COUNTIF($B:$B,$A2)=0 点“格式”->“字体”->“颜色”,选中红色,点两次“确定”。用格式刷将A2单元格的条件格式向下复制。B列可参照此方法设置。按以上方法设置后,AB列均有的数据不着色,A列有B列无或者B列有A列无的数据标记为红色字体。



数字转大写金额
=SUBSTITUTE(SUBSTITUTE(IF(A2>-0.5%,,"负")&TEXT(INT(FIXED(ABS(A2))),"[dbnum2]G/通用格式元;;")&TEXT(RIGHT(FIXED(A2),2),"[dbnum2]0角0分;;"&IF(ABS(A2)>1%,"整",)),"零角",IF(ABS(A2)<1,,"零")),"零分","整") 方法二:NUMBERSTRING函数
EXCEL中隐藏了一个数字转大写的函数NUMBERSTRING,但它仅支持正整数,用中文版的朋友可以试试这个函数:
=NUMBERSTRING(VALUE,TYPE)
    NumberString(1234567890,1) = 一十二亿三千四百五十六万七千八百九十
    NumberString(1234567890,2) = 壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾
    NumberString(1234567890,3) = 一二三四五六七八九○

用vlookup实现非首列查找 这里面有三种方法帮你解决该问题
=VLOOKUP(B3,IF({1,0},E2:E7,D2:D7),2,0)
或:
=VLOOKUP(B3,CHOOSE({1,2},E2:E7,D2:D7),2,0)
或:
=INDEX($D$2:$D$7,MATCH($B$3,$E$2:$E$7,0))
上例是通过在内存空间中交换E列与D列实现查找  如何判断单元格里是否包含指定文本?  假定对A1单元格进行判断有无"指定文本",以下任一公式均可:
=IF(COUNTIF(A1,"*"&"指定文本"&"*")=1,"有","无")
=IF(ISERROR(FIND("指定文本",A1,1)),"无","有")  

计算两个天数之间的年月日数
DATEDIF(start_date,end_date,unit)
Start_date 为一个日期,它代表时间段内的第一个日期或起始日期。日期有多种输入方法:带引号的文本串(例如 "2001/1/30")、系列数(例如,如果使用 1900 日期系统则 36921 代表 2001 年 1 月 30 日)或其他公式或函数的结果(例如,DATEVALUE("2001/1/30"))。有关日期系列数的详细信息,请参阅 NOW。
End_date 为一个日期,它代表时间段内的最后一个日期或结束日期。
Unit 为所需信息的返回类型。
Unit 返回
"Y" 时间段中的整年数。
"M" 时间段中的整月数。
"D" 时间段中的天数。
"MD" start_date 与 end_date 日期中天数的差。忽略日期中的月和年。
"YM" start_date 与 end_date 日期中月数的差。忽略日期中的日和年。
"YD" start_date 与 end_date 日期中天数的差。忽略日期中的年。

DATEDIF("2001/1/1","2003/1/1","Y") 等于 2,即时间段中有两个整年。
DATEDIF("2001/6/1","2002/8/15","D") 等于 440,即在 2001 年 6 月 1 日和 2002 年 8 月 15 日之间有 440 天。
DATEDIF("2001/6/1","2002/8/15","YD") 等于 75,即在 6 月 1 日与 8 月 15 日之间有 75 天,忽略日期中的年。
DATEDIF("2001/6/1","2002/8/15","MD") 等于 14,即开始日期 1 和结束日期 15 之间的差,忽略日期中的年和月。
=DATEDIF(B2,TODAY(),"y")
=DATEDIF(B2,TODAY(),"ym")
=DATEDIF(B2,TODAY(),"md")
=DATEDIF(B2,TODAY(),"y")&"年"&DATEDIF(B2,TODAY(),"ym")&"月"&DATEDIF(B2,TODAY(),"md")&"日"  身份证号码算年龄(来源:excel精英培训论坛,xueweil)中国的身份证号码有两种,一种是旧的15位,一种是新的18位。
15位为:市号(3位)+ 区县号(3位)+ 出生年(后两位)+ 月(两位)+ 日(两位)+顺序号(3位)。
18位为:市号(3位)+ 区县号(3位)+ 出生年(4位)+ 月(两位)+ 日(两位)+顺序号(4位)。
摹拟一下这两种身份证号码,比如一个在1998年1月12号出生的家伙,那么他的身份证中的日期应该是这样的:
(15位,只取出生日期)000000980112000
(18位,只取出生日期)000000198401120000
DATEDIF函数可以很快的求出两个日期间的间隔,这个函数的运用已经在另一个帖子里说明:
http://excelhome.bbs.pepo.cn/page/bbs/pages/bbstopic/getTopicById.aspx?id=429507
那我们怎么把980112这样的个东东换成日期型呢?
日期型的数值,我们可以把它当成文本形式的输入,1999-mar-13他是一个日期型,也是一个文本型的数值。
同时也可以当成小数输入,1999-3-13,把格式换成常规,就变成了36232,从这个角度说,他也可以是一个数字型的数值。

从上面的身份证号码我们可以考虑从文本型入手。如何把文本型的转换成日期型的数值?我们这里用到TEXT函数,这个函数我在另一个帖子里已经做了说明,要了解的网友可以去看一下。http://excelhome.bbs.pepo.cn/page/bbs/pages/bbstopic/getTopicById.aspx?id=429509
也就是说,text("19980112","0000-00-00")就可以把19980112转换成1998-01-12
由此得到公式: =IF(LEN(A2)=15,DATEDIF(TEXT(MID(A2,7,6),"00-00-00"),TODAY(),"y"),IF(LEN(A2)=18,DATEDIF(TEXT(MID(A2,7,8),"0000-00-00"),TODAY(),"y"),"身份证号码有误"))更简便的公式:(对1930年以前出生的可能会算错)=IF(SUM(N(LEN(A1)={15,18}))=1,TEXT(NOW()-TEXT(MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00"),"y"),"身份证号码有误")