欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


双击excel文件打不开的解决方法
单独打印Excel指定区域方法
用Excel的视图和宏分类显示表单数据
Excel2007快速隐藏和显示特定行列
禁止修改excel指定单元格数据数据的设置方法
word插入excel表格并自动更新方法
Excel表格中的正数前添加“+”号的方法
Excel批量生成和打印考场座位标签实例教程
Excel2007多工作表快速输入数据方法
Excel录入时开启单元格自动下拉菜单
用Excel函数快速整理错乱成绩表
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

   单位教务部门拿来Excel两张工作表,要把“成绩表”中成绩列数据复制到“学生基本信息表”成绩列中。我对照了两个表,发现几个难点(如图)。

用Excel函数快速整理错乱成绩表  三联
用Excel函数快速整理错乱成绩表

  (1) “学生基本信息表”的姓名与“成绩表”中的姓名不一样,“学生基本信息表”中的“王一”在“成绩表”中为“ 王 一”,出现了全角或半角空格。

  (2) “学生基本信息表”中王小平在“成绩表”中无此人,即“学生基本信息表”的人数多于“成绩表”的人数。

  (3) “成绩表”中成绩列为文本方式,且出现了全角数字。

  (4) 每个表的数据为几千条。如果对“成绩表”中的姓名列进行排序,把成绩列进行复制粘贴到“学生基本信息表”中的成绩列,出现错位。

  我通过Excel函数SUBSTITUTE和LOOKUP来解决,将“学生基本信息表”和“成绩表”进行了一些修改,实现将“成绩表”中的数据复制到“学生基本信息表”中,并且保持最终表格的清爽和数据的正确。

  除去“成绩表”中全角或半角空格

  首先,我要解决的问题是将“成绩表”中姓名的空格去掉,让“成绩表”中的学生姓名显示和“学生基本信息表”中的一样。此时我利用替换公式SUBSTITUTE(SUBSTITUTE(A2,"半角空格 ",""),"全角空格","")。在D2单元格输入公式=SUBSTITUTE(SUBSTITUTE(A2," ","")," ",""),然后在整个D列复制公式。选择D列数据→进行复制,再选择A列所有数据→选择性粘贴→值和数字格式。

  转化“成绩表”中成绩列为数字

  删除了空格,下面的工作就是将“成绩表”中的数字规范为半角形式。同样利用函数SUBSTITUTE。在E2单元格输入公式=(SUBSTITUTE(C2,"。","."))*1,其中SUBSTITUTE(C2,"。",".")表示句号“。”转化为点号“.”,“*1”表示转化为数字。然后在E列复制公式。同样进行选择性粘贴。选择E列数据→进行复制,再选择C列所有数据→选择性粘贴→值和数字格式。删除“成绩表”中D列、E列。

  复制“成绩表”中数据到“学生基本信息表”

  最后一步就是复制“成绩表”中的数据到“学生基本信息表”了,但是我们不能简单地利用复制粘贴来实现,因为我们的这个具体案例中包含没有成绩的同学,所以为了数据的正确性,我们知道查询函数LOOKUP有一个特性就是在查询结束后会在指定的区域返回查询结果,我就用它来达到复制“成绩表”中数据的效果。

  其语法为LOOKUP(lookup_value,lookup_vector,result_vector)。其中Lookup_value为要查找的数值,Lookup_vector为只包含一行或一列的区域,且必须按升序排列,否则要返回错误,Result_vector 返回只包含一行或一列的区域。

  如果函数LOOKUP找不到lookup_value,则查找lookup_vector中小于或等于lookup_value的最大数值,如果lookup_value 小于lookup_vector 中的最小值,函数LOOKUP 返回错误值 #N/A,利用这个特性,我们把公式改为=LOOKUP(1,0/(条件),引用区域),条件——产生的是逻辑值True、False数组,0/True=0,0/false=#DIV0!,即Lookup的第2参数便是由0、#DIV0!组成的数组(都比1小),如果找到满足条件,就返回对应行引用区域的值;如果没有找到满足条件的记录则返回#N/A错误,从而实行精确查找。

  在“学生基本信息表”中D2输入公式=LOOKUP(1,0/(成绩表!A$2:A$5=B2),成绩表!C$2:C$5)。在没找到数据的一栏出现了#N/A,影响了表格的美观。稍微改进一下,利用ISNA函数判断是否为#N/A,如果是,设置为空。

  因此在D2输入公式=IF(ISNA(LOOKUP(1,0/(成绩表!A$2:A$5=B2),成绩表!C$2:C$5)),"",LOOKUP(1,0/(成绩表!A$2:A$5=B2),成绩表!C$2:C$5)),这样#N/A不会出现在单元格中。最后在D列进行公式复制即可。

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站