- 数据处理与管理(Excel、Access及文献检索)
- 白玥
- 4227字
- 2025-02-23 21:21:26
1.1.1 数据类型
在解决实际问题前,首先要对所涉及的具有不同属性的数据进行分类,根据它们的特点,给予不同的编码表示方法和不同的存储空间,然后进行不同种类的计算,这就是计算机中数据类型的概念。
例如,要了解一所学校的好坏,可以从该校最近3~5年的全体学生高考总分的平均分情况,以及其在一个地区的排名情况来了解。其中,年份、分数、排名等都是数据;学生进入一所学校后,学校会给学生安排学号,学生的学号、姓名、出生年月、是否党员、所在系别、所学专业等信息反映了学生的状况,这些也是数据。
不同的数据有不同的特点:
• 利用多门课程的考试分数,可以得到每名学生的考试平均分,并依据平均分进行排序。
• 根据出生年月和当前的日期可以计算出学生的年龄。
• 通过是否党员,可以了解要组织党员学生进行活动时,会有多少学生参加,并列出这些学生的姓名等。
Excel的数据类型分为数值型、文本型、日期型和逻辑型,不同的数据类型对应着不同的运算方式。
1. 数值型数据
数值型数据是表示数量、可以进行数值运算的数据类型。它们由数字、小数点、正负号和表示乘幂的字母E组成,可以进行诸如加、减、乘、除等数值运算,也可以进行比较,或参与SUM()、AVERAGE()、Max()和Min()等数值型函数的运算(关于函数的详细介绍参见第1.2节)。
(1)数值型数据的表示
在Excel中,正负整数、小数、分数、百分比、科学计数法等数值型数据的表示方法有所不同,如表1-1-1所示,但输入到单元格后,默认都自动右对齐。
表1-1-1 不同形式的数值型数据

受存储器空间结构的限制,计算机中的数据大小和精度是有限的。在Excel中,数值型数据最大正数可达9.99×10307,最小负数可达-9.99×10307,但精度只能精确到15位数字。当在单元格中的数字超过15位时,第15位以后的数字将使用数字0代替。
(2)数值型数据的运算
数值型数据可以参与算术运算和比较运算,与数值型数据运算相关的运算符号及运算举例如表1-1-2和表1-1-3所示。
表1-1-2 数值型数据的算术运算

表1-1-3 数值型数据的比较运算

数值型数据也可以参与相关的函数运算,通过【例1-1-1】可以体会数值型数据运算在实际工作中的使用情况。涉及到的相关函数,可以通过1.2节内容深入了解。
【例1-1-1】数值型数据函数应用(MAX、COUNTIF等)。
在fl1-1-1成绩统计.xlsx的A2:D59区域中,包含了某班学生大学计算机课程的平时成绩和期末考试成绩,按平时占40%,考试占60%,计算全班学生的总评,填入E2:E59区域;计算期末最高分和最低分,分别填入D60和D61;统计总评为0~59、60~74、75~84、85分以上的学生数,分别填入E60:E63区域中。
【例1-1-1解答】
① 在E2单元格中输入:=C2*0.4+D2*0.6。按Enter键确认后,拖曳该单元格的填充柄到E59,完成公式的复制。
② 在D60单元格中输入:=MAX(D2:D59)。在D61单元格中输入:=MIN(D2:D59)。
③ 在E60单元格中输入:=COUNTIF($E$2:$E$59,"<60")。按Enter键确认后,拖曳该单元格的填充柄到E61,修改E61中的公式为:=COUNTIF($E$2:$E$59,"<75")-E60。类似的,复制并修改E62中的公式为:=COUNTIF($E$2:$E$59,"<85")-E61-E60。复制并修改E63中的公式为:=COUNTIF($E$2:$E$59,">=85")。
技巧
在数值计算时,经常会得到一些小数,有时候甚至是无限循环或不循环小数,在显示的时候如果需要保留若干位小数,除了用Excel格式设置的方法外(只是显示形式,并没有真正进行四舍五入),也可以通过INT()、ROUND()等函数进行设置。
在Excel中,能进行数值运算的函数还有很多,详见第1.2节,或者在Excel中,按F1键进入帮助进行学习和了解。
2. 文本型数据
(1)文本型数据的表示
在Excel的单元格中输入字母、汉字等开头的文字后,数据会自动左对齐,默认的情况下,Excel将它们识别为文本类型数据。另外,阿拉伯数字如果跟随在字母或汉字之后,则自动被识别为文本类型数据,如果独立输入,则自动被识别为数值型数据;如果先输入半角的单引号,其后面的阿拉伯数字则自动被识别为文本型数据。
(2)文本型数据的运算
文本类型的数据不像数值类型的数据那样可以进行加、减、乘、除等算术运算,但它们可以进行比较运算,还可以通过连接运算进行连接,或者用函数从一个长的文本串中,取出想要的部分数据。在进行连接运算时,如果被连接的数据是数值型的,运算结果将自动转化为文本型数据。表1-1-4为文本型数据的相关运算。
表1-1-4 文本型数据的相关运算

除了直接运算外,文本类型的数据经常需要求子串,Excel中提供的“分列”功能,以及Left()、Right()、Mid()等函数可用于取得子串,具体见第1.2节的内容。
【例1-1-2】文本型数据的连接运算(& CONCATNATE)。
在fl1-1-2表现评语.xlsx的Sheet3表格中,包含了对某专业大学生的“思想表现”“学习情况”“集体活动”和“打扫卫生”4个方面的所有评语,Sheet1表格中的前4名学生的对应单元格中,已经输入了这4方面的评语,现在请为所有学生填写4个方面的评语,然后将每位学生的评语文本连接起来,填入右侧的“综合评定”列中,从而完成每位学生的综合评定。
【例1-1-2解答】
① 在C6:F59范围的各个单元格中,通过公式输入评语,例如:C6单元格中输入:=Sheet3!$A$2,便为该生输入了“要求上进”的思想表现评语。
② 在G2单元格中输入“=C2&","&D2&","&E2&","&F2&"。"”。按Enter键确认后,拖曳该单元格的填充柄到G59,完成公式的复制。可以看到每位学生的综合评定已经给出。
说明:
① 由于每位学生每个方面的评语各不相同,C6:F59范围中各个单元格的输入方法类似,以C6单元格为例,可以在输入“=”号后,直接单击Sheet3标签切换到Sheet3,再单击A2单元格,编辑栏中可以看到“=Sheet3!A2”,按F4键将引用转换为绝对引用。
② 在公式中,如果要将文本字符串直接用于计算,需要在文本字符串的两边加上半角的双引号,双引号中间的表示文本字符常量。
思考
在本例的G2单元格中,也可以使用“=CONCATENATE(C6,D6,E6,F6)”来完成文本的连接,如果要在所连接的各个文本中间添加逗号,在文本的最后添加句号,该如何修改这个公式?
【例1-1-3】字符串长度判断、取子串(MID、MOD、LEN、IF)。
在fl1-1-3字符串.xlsx的Sheet1表格中,包含了某专业大学生的姓名和身份证号码,为了完善学生信息,表格中还需要输入学生的性别、出生年月、年龄等信息,可以通过身份证号码的特征,来获取这些信息。本例中获取的是性别信息。
【例1-1-3解答】
① 分析身份证号码的特点:根据现行的居民身份证号码编码规定,正在使用的18位身份证号码从左向右的第17位表示性别(奇数为男,偶数为女),第18位为效验位。
② 获取身份证号码中的第17位,可以选择以下任意一种方法:
• 采用“分列”的方法,将身份证单元格中的数据分为3个部分,将第17位数据存入单独的单元格,其过程如图1-1-1~图1-1-4所示。

图1-1-1 选定身份证号数据所在区域

图1-1-2 “文本分列向导”对话框

图1-1-3 单击添加分隔线

图1-1-4 为分隔后的数据设置数据类型
• 通过MID(text,start_num,num_chars)函数,获取所需要的数据,本例在D2单元格中输入公式“=MID(C2,17,1)”。取得第17位数据,并复制到其他单元格。
③ 对第17位数据使用MOD(number,divisor)函数判断奇偶,其中number表示被除数,即第17位数据,divisor表示除数,这里选择2,MOD函数的作用是取得整除的余数,如果余数为0,则表示被除数是偶数。本例中,在E2单元格中输入公式“=MOD(D2,2)”。
④ 通过IF函数,可以根据MOD函数的结果,显示性别。
说明:
在MOD函数中,可以将文本型的数字字符作为自变量,如本例中的被除数,通过函数的计算,结果成为数值型数据,这是因为Excel中的数据类型可以在函数计算过程中进行相互转化。
思考
早期使用的是15位身份证号码,从左向右的第15位是性别(奇数为男,偶数为女)。如果数据中存在15和18位两种不同学生的身份证长度,应该如何修改?提示:可以先通过身份证排序,然后再输入不同的公式分别进行处理;判断身份证号码的长度,需要用到LEN(text)函数。本例中,如需针对15位身份证号码来获取性别信息,则D2单元格中应输入“=IF(MOD(MID(C2,15,1),2)=1,"男","女")”。
3. 日期与时间型数据
(1)日期与时间型数据的表示
按照Excel所能识别的格式输入日期或时间,得到的便是日期与时间型数据。例如:在某单元格中输入2014-1-19,按Enter键确认后,单元格中数据自动右对齐,并显示为2014/1/19,输入9:48:23,则系统自动右对齐,并理解为9点48分23秒。
(2)日期与时间型数据的运算
在Excel中,日期的本质是整数类型,一天对应着整数1,系统日期是从1900年1月1日开始,到9999年12月31日为止;时间则是小数,每秒对应着1/(24×60×60)。通常日期与时间型数据可以进行加或减运算,加、减一个整数,则得到一个新的时间或日期,两个日期与时间数据相减,则得到相差几天或多长时间。在Excel中,也提供了不少用于处理日期与时间型数据的函数。
【例1-1-4】从出生日期中提取年龄信息(TODAY YEAR DATE MID IF等)。
在fl1-1-4年龄.xlsx的Sheet3表格中,包含了某专业大学生的姓名和身份证号码,并已经从身份证号码中获取了学生的性别和出生日期,现在需要从出生日期信息中提取学生的年龄信息。
【例1-1-4解答】
① 在已经知道出生日期的情况下,可以通过使用“当前年份-出生年份”的方法,粗略地计算出年龄,系统的当前日期可以通过TODAY()函数获得。通过YEAR(DATE)函数,可以获得某个日期DATE的年份。
② 在F2单元格中输入公式"=YEAR(TODAY())-YEAR(E2)",便能计算出对应学生的年龄。
说明:
E2单元格中的公式是“=IF(LEN(C2)=15,"19"&MID(C2,7,2)&"/"&MID(C2,9,2)&"/"&MID(C2,11,2),MID(C2,7,4)&"/"&MID(C2,11,2)&"/"&MID(C2,13,2))”。这里,MID函数用于从身份证号中取出代表年、月、日的字符,通过字符串连接的方法获得最终的出生年月,因此,出生年月实际是文本类型数据,但在用YEAR(E2)函数时,系统进行了自动转换,因此还是正常输出了数值类型的年份信息,可以用于减法运算。
拓展
如果使用DATE(year,month,day)函数,则在自变量都是文本类型数据的情况下,可以构造产生一个日期类型的数据,请尝试修改本例中的E2单元格,使最终获得的是日期类型的出生年月。
4. 逻辑型数据
(1)逻辑型数据的表示
逻辑类型的数据只有TRUE表示“真”和FALSE表示“假”。例如IF函数就是一种逻辑函数,可以根据参数中的逻辑值进行计算。逻辑型数据也可以与数值型数据相互转换,TRUE转换为1,FALSE转换为0;反过来,0转换为FALSE,其他非0数据转换为TRUE。
(2)逻辑型数据的运算
逻辑运算包括AND与运算、OR或运算和NOT取反运算。AND运算的结果是当所有参数的值都为真时,结果才是真,OR运算的结果是参与运算的结果中,只有一个参数的结果是真的时候,运算结果都为真,NOT运算则将真变成假,将假变成真。
逻辑值的获得除了逻辑运算外,还可以通过比较运算得到,例如=3>5的结果就是FALSE。
【例1-1-5】逻辑型数据运算(IF、AND、OR)。
在fl1-1-5成绩等第计算.xlsx的Sheet1表格中,包含了某校学生某次语文、数学、英语的考试成绩,计算每位学生的总分,然后根据以下条件给出等第:语文、数学、英语三科都大于等于60分,且总分大于等于200分,4个条件同时满足时为“及格”,否则为“不及格”。
【例1-1-5解答】
① 先利用自动求和计算每位学生的总分。
② 可以使用逻辑函数AND(参数1,参数2……)来获得4个条件同时满足的结果。
③ 在G2单元格中输入公式“=IF(AND(C2>=60,D2>=60,E2>=60,F2>=200),"及格","不及格")”,按Enter键后,拖曳填充柄到最后一名学生对应单元格。
也可以使用OR(参数1,参数2……)函数来得到需要的结果,这时,公式应该变为“=IF(OR(C2<60,D2<60,E2<60,F2<200),"不及格","及格")”。
思考
求总分时使用了公式“=SUM()”,没参加考试的学生求和结果默认会显示“0”,不仅不够美观,在求总分的平均值时,还可能出现错误,即零分也参与求平均值了,如何解决?